2016-04-05 1 views
1

J'ai un projet Maven qui est essentiellement un réacteur nucléaire autour de plusieurs autres projets autonomes.Comment puis-je remplacer `distributionManagement` du module POM dans un réacteur POM?

  • racine
    • module1
      • submodule1
      • submodule2
    • module2
      • submodule3
      • submodule4

Les modules submoduleX héritent de divers POMS mères (par exemple, submodule1 a un parent différent de submodule2) et est hors de mon contrôle. Cependant, je veux déployer les artefacts de mon projet dans un dépôt. Donc, dans mon réacteur racine pom j'ai spécifié un paramètre <distributionManagement>, où les référentiels pour les artefacts sont configurés.

Cependant, lors de l'exécution de mvn deploy sur le POM du réacteur, les sous-modules tentent de déployer leurs artefacts dans les référentiels hérités de leurs poms parents au lieu de ceux spécifiés dans le pom du réacteur racine. Y a-t-il un moyen de l'ignorer à partir du réacteur racine ou est-ce que je n'ai pas de chance ici?

+0

Je ne suis pas certain de comprendre comment, par exemple 'submodule1' a plusieurs parents. Un projet ne peut avoir qu'un seul parent. – Tunaki

+0

Ma description était quelque peu trompeuse. Je voulais dire que 'submodule1' a un parent différent de' submodule2', etc, pas qu'ils aient plusieurs parents. –

Répondre

1

Vous pouvez spécifier les paramètres du référentiel que vous souhaitez déployer, si vous utilisez l'objectif mvn deploy:deploy-file du maven-deploy-plugin pour les déployer dans votre référentiel.

Comme suspecté, mvn deploy:deploy ne fonctionnera pas dans votre cas, puisque vous ne pouvez pas contrôler correctement la section distributionManagement de vos poms sans avoir accès à leurs parents poms. Le réacteur pom ne suffit pas pour cela.