Ho un semplice script di build Gradle per compilare e impacchettare (simile al plug-in dell'applicazione) la mia applicazione Java. L'unica cosa che non riesco a fare è sostituire il numero di versione corrente in un semplice file .properties.Il progetto java gradle sostituisce una riga singola nel file durante la creazione
Ho creato un file 'src/main/resources/app-info.properties' con una singola riga 'application.version = @ version @'. No Voglio sostituire questa stringa di versione ogni volta che il file viene copiato nella cartella di build (pensa che questo accada durante l'attività di compilazione).
Ho già provato una soluzione semplice con le formiche ReplaceTokens. Questo ha sostituito la versione, ma ha anche rotto i miei file .png nelle risorse ..
Quindi c'è una soluzione semplice per sostituire semplicemente i token in un singolo file durante l'attività di compilazione (o qualsiasi altra attività gestisca la copia nella cartella di build)?
Grazie per qualsiasi aiuto! Ben
====== Modifica sulla base del commento da Opal =====
Sulla base del suggerimento ho aggiunto il seguente:
import org.apache.tools.ant.filters.ReplaceTokens
// ...
build {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}
che getta questo errore:
Could not find method from() for arguments [src/main/resources, [email protected]] on root project
Sembra che io abbia un compito sbagliato?
Modifica ====== per completezza l'aggiunta della soluzione basata su opali suggeriscono =====
Grazie uomo, il seguente è la soluzione di lavoro!
processResources {
from('src/main/resources') {
include '*.properties'
filter(ReplaceTokens, tokens: [version : project.version])
}
}
Siamo spiacenti, attualmente non c'è codice di esempio in quanto non ho una soluzione per sostituire la linea. Come descritto, voglio solo sostituire alcuni token in un file di risorse che è ** già ** copiato dal plugin Java (si pensi all'attività di compilazione). Quindi pensi che il metodo di copia ti aiuti qui? – Ben