Sto cercando di capire come organizzare molti (circa 50) progetti maven2, in modo che possano essere distribuiti in un repository centrale di nexus. Quando si utilizza l'obiettivo mvn deploy
, uno ha bisogno di specificare la destinazione nel tag distributionManagement in questo modo:Come specificare la distribuzione di mavenGestione manageriale ampia?
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Ora, non voglio ogni singolo pom.xml (di quelli 50+) per contenere questo blocco su e ancora. Il mio primo pensiero sarebbe il file settings.xml
, ma sembra che non sia possibile (in base alla progettazione) definirlo lì. Quindi, la prima domanda sarebbe: perché è così? Se fosse possibile potrei specificarlo in settings.xml nella distribuzione di maven2, che potrebbe essere distribuita a tutti gli sviluppatori.
L'unica soluzione possibile che ho trovato è stata quella di creare un progetto master-pom a livello di organizzazione, che contenga queste impostazioni e che tutti gli altri pom.xml dipendano da questo master-pom tramite il tag <parent>
. Ma questo sembra un po 'strano in multi-modulo costruisce:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Di solito ho letto tutta la documentazione che i pon modulo dovrebbe utilizzare il pom genitore, non un po' diverso uno. Ma dopo aver letto il sito web Maven su Inheritance v. Aggregation è scritto che è davvero possibile.
Un problema che ho trovato è stato con la generazione sito Maven, che non sembrano avere problemi con questa configurazione (moduli non venga collegate correttamente se non hanno alcun back-riferimento diretto)
Quindi, si tratta di una valida approccio ? Qualunque altra soluzione più ovvia e semplice al problema?
http://maven.apache.org/pom.html#Distribution_Management – OhadR
@ OhadR: scrivono solo come scriverlo in un progetto. Il punto è che non volevo duplicarlo circa 500 volte ... – mglauche
vedo. punto preso. così come colui che ha risposto ha detto, puoi avere un main pom per il progetto, che conterrà il 'distribMngmnt' ... – OhadR