Quando si applica una struttura multi progetto Gradle al nostro progetto, i miei settings.gradle assomiglia a questo:Gradle Multi Project costruire con progetti vuoti
include "source:compA:api"
include "source:compA:core"
include "source:compB"
progetti Gradle mi danno
Root project 'tmp'
\--- Project ':source'
+--- Project ':source:compA'
| +--- Project ':source:compA:api'
| \--- Project ':source:compA:core'
\--- Project ':source:compB'
Questa è esattamente la struttura della directory!
Nel mio directory principale Ho un build.gradle quale si applica il plugin Java per tutti i sottoprogetti:
subprojects {
apply plugin: 'java'
}
Quando si costruisce finisco per avere artefatti per : fonte: COMPA che sono vuoti, perché questo è in realtà non è un progetto solo le sottodirectory api e core sono progetti java corretti.
Qual è il modo migliore per evitare di avere un artefatto vuoto?
Perché non basta applicare il plugin Java all'api e al core nei rispettivi script? –
Potrei farlo, ma la mia attuale struttura del progetto è molto più nidificata, con molti progetti. Penso che questo sia un problema comune per le strutture di progetto legacy. E sto cercando una soluzione flessibile, in cui ogni progetto non abbia bisogno di sapere molto sul processo di costruzione in cui vive. – VolkerK
IMHO il sottomodulo dovrebbe sapere esplicitamente che si tratta di un progetto Java. Ciò renderà molto più espressivo per chiunque lo guardi che dichiarare questa informazione a livello di root. –