Per ora abbiamo una struttura di progetto con una singola cartella di origine denominata src
, che contiene il codice sorgente per tre moduli. Quello che voglio fare è:Gradle più giare da una cartella di origine singola
1) Compilare il codice sorgente. Questo è fatto facilmente con la definizione sourceSets:
sourceSets {
main {
java {
srcDir 'src'
}
}
}
2) Inserire i risultati della compilazione in tre barattoli. Sto facendo questo attraverso tre attività di tipo 'jar':
sto facendo questo ora via tre attività distinte:
util.jar
task utilJar(type: Jar) { from(sourceSets.main.output) { include "my/util/package/**" } }
client.jar
server.jar
task serverJar(type: Jar) { from(sourceSets.main.output) { include "**" } excludes.addAll(utilJar.includes) excludes.addAll(clientJar.includes) }
Il fatto è che server.jar
dovrebbe contenere tutte le classi che non sono contenuti all'interno client.jar
e util.jar
. Nello script di form di formiche risolviamo questo problema usando l'attività ant difference
ant. Come si può fare a gradle (il mio approccio attuale non funziona)?
Forse il mio approccio è completamente sbagliato. Per favore consiglio
P.S. per ora NON POSSIAMO cambiare la struttura della cartella del codice sorgente del progetto.
Questo è ottimo, ma come si fa riferimento ai file separati '.jar' da altri progetti - ad es. come potresti inserire 'client.jar' in un altro sottoprogetto? – z0r
@ z0r stiamo semplicemente pubblicando gli artefatti nel repository e quindi li utilizziamo come dipendenze nei sottoprogetti. P.S. scusa per il ritardo nella risposta. – vitalidze