2015-01-13 8 views
7

Ho una versione multiprogetto con diversi progetti secondari e voglio utilizzare il wrapper gradle.Utilizzo del wrapper Gradle (./gradlew.sh) con sottoprogetti

Qual è il modo idiomatico per farlo?

Devo configurare il wrapper in ogni sottoprogetto aggiungendo il seguente codice a build.gradle nella radice?

allprojects { 
    task wrapper(type: Wrapper) { 
     gradleVersion = '2.2' 
    } 
} 

Ma poi, posso controllare tutte le gradlew.bat, gradlew.sh, gradle/wrapper/gradle-wrapper.jar, file ecc da tutte le directory sottoprogetto in controllo di versione ?? Sembra inefficiente, ma se non lo faccio, come posso eseguire ./gradlew.sh in una directory di sottoprogetto? Qual è il modo migliore di usare il wrapper gradle in un sottoprogetto?

Gli sviluppatori usano solo il gradle installato sul filesystem per questo caso?

La domanda più importante è la prima: qual è il modo idiomatico per farlo?

risposta

7

È necessario eseguire l'attività wrapper all'esterno del blocco allprojects in modo da avere solo uno gradlew.bat, gradlew.sh e gradle/wrapper/gradle-wrapper.jar al livello più alto della struttura del progetto.

È possibile eseguire il ./gradlew tasks --all per verificare l'involucro in grado di visualizzare le attività del sottoprogetto

Oppure è possibile eseguire il comando ./gradlew <subproject_name>:tasks per visualizzare solo un attività di sottoprogetto.

+1

Per essere chiari è questo il modo idiomatico di fare questo? E c'è una soluzione idiomatica al problema di eseguire un'attività con il wrapper mentre si trova in una directory di sottoprogetto? – Jason

+0

Per chiamare il pacchetto dalla directory del sottoprogetto, eseguire ../gradlew Mi si rimanda agli altri per dire se questo è il modo idiomatico o meno. È il modo in cui lo faccio almeno. – jeffl8n

+7

Questo è il modo corretto. Inoltre puoi mettere uno script 'gradle (w) di terze parti 'come https://github.com/cbeams/dotfiles/blob/home/bin/gradle sul tuo' PATH' che cercherà il "reale" ' script gradlew' nelle directory madri. Quindi puoi scrivere 'gradlew' invece di'./Gradlew' o '../ gradlew'. –

Problemi correlati