2013-06-07 10 views
86

Ho una build di gradle per più moduli. Voglio eseguire obiettivi per un modulo usando root. Es:Gradle crea solo un modulo

gradle build -Pmodule=ABC 
gradle jar -Pmodule=ABC 
gradle test -Pmodule=ABC 
gradle compileJava -Pmodule=ABC 
gradle customTask -Pmodule=ABC 
etc. 

Così ogni obiettivo può essere eseguito dalla radice specificando il modulo. C'è un modo semplice per farlo?

Grazie!

+0

'if (project.hasProperty ('modulo') && module.equals ('ABC')) {// eseguire modulo ABC} ...'. Questo è ciò che vuoi ottenere? – pepuch

risposta

189

Per eseguire un compito di un sottoprogetto specifico, specificare il percorso compito. Per esempio:

gradle :ABC:build 

I leader : tribune per il progetto principale. ABC è il sottoprogetto e build un'attività in quel progetto.

+2

Come si può controllare tramite la configurazione piuttosto che la riga di comando per assemblare solo un sottoprogetto tra tanti? Per le pipeline di rilascio di Google, attiva un "gradle clean assemble" nel progetto root. Per me, quello prova a costruire le build AppEngine e Android. La Release Pipeline fallirà sul build Android in quanto non ha installato l'SDK, comprensibile per una macchina transitoria. Inoltre, non sembra che Release Pipelines offra opzioni di configurazione. – brunobowden

+0

Nel mio caso il progetto root è ancora ispezionato e genera messaggi di errore che non desidero affrontare in questo momento. Molto noioso. –

53

trovato un modo rapido

gradle build -p moduleA 

moduleA è la directory del modulo.

Sopra comando costruisce un moduleA e tutti i suoi moduli, e moduleA dovrebbe essere il suo percorso

+3

Il comando precedente crea un moudleA e tutto il suo sottomodulo, e moduloA dovrebbe essere il suo percorso 'gradle build -p percorso \ pathSt \ moduleA' – Viraj

+1

Ho un wrapper per sottoprogetti che non ha un proprio file gradle. A differenza della risposta selezionata, questo funziona per me. Inoltre grazie per il chiarimento in commento, potresti aggiungerlo alla risposta? – Vlasec

0

enter image description here

Se il vostro IDE è Android Studio, c'è una semplice way.Just scegliere la cartella modulo da compilare, quindi scegliere Genera e scegliere Fai Module 'la cartella modulo'.

5

Su Mac. L'unica variante che sta lavorando con me:

./gradlew ABC:build 
+1

Funziona per me su Linux. Grazie! –

Problemi correlati