Il semble y avoir plusieurs façons de structurer le parent de chrysanthèmes dans un multiprojet construire et je me demandais si quelqu'un avait une idée sur ce qui sont les avantages / inconvénients de chaque moyen.
La méthode la plus simple de demander à un parent de pom serait de le mettre dans la racine d'un projet c'est à dire
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
où l'pom.xml est à la fois le projet parent ainsi que le décrit le cœur de l'api et de l'application des modules
La méthode suivante consiste à séparer la mère de son propre sous-répertoire comme dans
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Lorsque le parent pom contient toujours les modules, mais ils sont par rapport, par exemple ../myproject-core
Enfin, il y a l'option dans laquelle le module de la définition et de la mère sont séparés comme dans
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Lorsque le parent pom contient tout "partagé" de la configuration (dependencyManagement, propriétés, etc.) et la myproject/pom.xml contient la liste des modules.
L'intention est d'être adaptable à une grande échelle, ce qui devrait être adaptable à un grand nombre de projets et d'artefacts.
Quelques bonus de questions:
- Où est le meilleur endroit pour définir les différentes configuration partagée que dans le contrôle de code source, le déploiement des répertoires, commune de plugins etc. (Je suis en supposant que le parent, mais j'ai souvent été mordu par cela et ils se sont retrouvés dans chaque projet, plutôt que d'une commune).
- Comment faire le maven-release-plugin, hudson et nexus traitent de la manière dont vous configurez votre multi-projets (peut-être un géant de la question, c'est plus si quelqu'un a été surpris quand, par la façon dont un multi-projet de construction a été mis en place)?
Edit: Chacun des sous-projets ont leur propre pom.xml j'ai oublié de le garder laconique.