Domanda

Sto tentando di creare il mio compito, che creerà un pacchetto di tutti i manufatti generati durante la mia build multi-project.

Attualmente quello che faccio bene è ora solo:

gradle build createPackage
.

che fornisce output come quanto segue:

:test-utility:compileJava UP-TO-DATE
:test-utility:processResources UP-TO-DATE
...
:test-utility:check UP-TO-DATE
:test-utility:build UP-TO-DATE
Creating Package...
Created.

BUILD SUCCESSFUL

Total time: 4.654 secs
.

con l'attività createPackage:

task createPackage {    
    println "Creating Package..."
    println "Created."
}
.

Tuttavia, vorrei semplicemente correndo solo un comando, quindi quale sarebbe il modo migliore per farlo e assicurarsi che l'ordine rimane mantenuto?

Idealmente vorrei chiamare build all'interno dell'attività createPackage o APPEND all'attività build con la mia attività.

È stato utile?

Soluzione

OK Lettura tra le linee Ci sono alcune cose da chiarire

1) I tuoi stampatori vengono eseguiti nella fase di configurazione, non nella fase di esecuzione.Vedi http://www.gradle.org/docs/current/iserguide/build_lifecycle.HTML per maggiori informazioni.

2) Non hai un singolo compito "Build".gradle build sulla riga di comando eseguirà il compito "Costruisci" di ciascuno dei tuoi sottoprogetti.L'attività del pacchetto dovrebbe dipendere da tutti loro.Qualcosa come ..

apply plugin: 'java'
evaluationDependsOnChildren()
task createPackage(type:Zip) {
   dependsOn subprojects*.build
}
.

3) Puoi essere più dichiarativo con Gradle - Dìlo solo cosa vuoi confezionare e capirà cosa ha bisogno di correre.Ad esempio, puoi dire che vuoi chiudere tutti i vasetti dai tuoi sottoprogetti.

apply plugin: 'java'    
evaluationDependsOnChildren()
task createPackage(type:Zip) {
   from subprojects*.jar
}
.

Altri suggerimenti

Ci sono un sacco di modi.Un suggerimento è quello di modificare build per dipendere da createPackage per assicurarti di poter chiamare solo gradle build.Quindi vuoi migliorare il tuo compito e dire quali sono i suoi input (probabilmente quelli vengono emessi di altre attività come jar).Gradle aggiungerà queste attività all'esecuzione quando si esegue la build e può re-eseguirle in base allo stato aggiornato di ciascuna attività.Questo è documentato in UserGuide - http://www.gradle.org/docs/current/userguide/more_about_tasks.html#sec:up_to_date_checks e successivamente in un capitolo su attività personalizzate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top