Lors de l'application d'une structure gradle multi projet à notre projet, mes settings.gradle ressemble à ceci:Gradle projet de plusieurs construire des projets vides
include "source:compA:api"
include "source:compA:core"
include "source:compB"
projets Gradle me donner
Root project 'tmp'
\--- Project ':source'
+--- Project ':source:compA'
| +--- Project ':source:compA:api'
| \--- Project ':source:compA:core'
\--- Project ':source:compB'
C'est exactement la structure du répertoire!
Dans mon répertoire racine J'ai un build.gradle qui applique le plugin java à tous les sous-projets:
subprojects {
apply plugin: 'java'
}
Lors de la construction, je finis par avoir des artefacts pour : source: Compa qui sont vides parce que c'est en fait pas un projet seulement les sous-répertoires api et core sont des projets java propres.
Quel est le meilleur moyen d'éviter d'avoir un artefact vide?
Pourquoi n'appliquez-vous pas simplement le plugin Java à api et core dans leurs scripts respectifs? –
Je pourrais le faire, mais ma structure de projet actuelle est beaucoup plus imbriquée, avec beaucoup de projets. Je pense que c'est un problème courant pour les structures de projet héritées. Et je cherche une solution flexible, où chaque projet n'a pas besoin d'en savoir beaucoup sur le processus de construction dans lequel il vit. – VolkerK
IMHO le sous-module doit explicitement savoir qu'il s'agit d'un projet Java. Cela le rendra beaucoup plus expressif pour quiconque le regarde que de déclarer cette information au niveau de la racine. –