Mam prosty skrypt kompilacji Gradle do kompilowania i pakowania (podobnie do wtyczki aplikacji) mojej aplikacji Java. Jedyne, czego nie osiągam, to zastąpienie bieżącego numeru wersji w prostym pliku .properties.Projekt Gradle java zastępuje pojedynczą linię w pliku podczas kompilacji
Utworzono plik "src/main/resources/app-info.properties" z pojedynczą linią "application.version = @ version @". Nie Chcę zastąpić ten ciąg wersji za każdym razem, gdy plik jest kopiowany do folderu kompilacji (wydaje się, że dzieje się to podczas zadania kompilacji).
Próbowałem już prostego rozwiązania z mrówkami ReplaceTokens. Ten zastąpił wersję, ale także złamał moje pliki .png w zasobach ..
Czy istnieje proste rozwiązanie, aby po prostu zamienić tokeny w jednym pliku podczas budowania zadania (lub jakiekolwiek inne zadanie obsługuje kopiowanie do folderu kompilacji)?
Dziękuję za pomoc! Ben
====== Edycja oparta na komentarz z Opal =====
oparciu o podpowiedź Dodałem następujące:
import org.apache.tools.ant.filters.ReplaceTokens
// ...
build {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}
Które generuje ten błąd:
Could not find method from() for arguments [src/main/resources, [email protected]] on root project
Wygląda na to, że mam złe zadanie?
====== Edycja za kompletność dodanie roztworu na podstawie Opals sugerują =====
Dzięki stary, po to roztwór roboczy!
processResources {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}
Niestety, obecnie nie ma przykładowego kodu, ponieważ nie mam rozwiązania, aby zastąpić linię. Zgodnie z opisem chcę tylko zamienić niektóre tokeny w pliku zasobów, który ** jest ** już skopiowany przez wtyczkę Java (pomyśl o zadaniu kompilacji). Więc myślisz, że metoda kopiowania pomoże tutaj? – Ben