Non sono sicuro di capire come utilizzare correttamente un progetto padre pom. Ho il seguente pom genitore definito:Maven: aggiunta di un riferimento a un progetto padre pom
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>../child1</module>
<module>../child2</module>
</modules>
E poi i bambini pom riferimento al genitore (ogni bambino ha il proprio insieme di dipendenze che non sono mostrati):
<parent>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../Parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child1</artifactId>
Questa messa a punto funziona bene e si risolve correttamente in eclissi (m2eclipse). Posso schierare questi per il mio repository locale e finire con la seguente struttura, che dovrebbe essere corretto:
--com
--example
--parent
--0.0.1-SNAPSHOT
--parent-0.0.1-SNAPSHOT.pom
--child1
--0.0.1-SNAPSHOT
--child1-0.0.1-SNAPSHOT.jar
--child1-0.0.1-SNAPSHOT.pom
--child2
--0.0.1-SNAPSHOT
--child2-0.0.1-SNAPSHOT.jar
--child2-0.0.1-SNAPSHOT.pom
Il mio problema è che io ora voglio fare riferimento al progetto genitore in un diverso progetto di (non genitore, figlio1 o figlio2) e quindi coinvolgere tutti i figli del genitore. Posso aggiungere un riferimento ad esso nel mio altro progetto:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>pom</type>
</dependency>
</dependencies>
Nel fare questo il progetto non mostra errori in Eclipse, ma senza artefatti vengono aggiunti al mio percorso di classe: non child1, child2, o una qualsiasi delle loro dipendenze.
Continuo a pensare che ci deve essere un modo per avere un progetto pom "master" che non è un barattolo in sé ma ha solo riferimenti ad altri barattoli e quindi essere in grado di fare riferimento a quel "master" da qualche parte, ma non posso scoprire come questo è realizzato.
I tuoi ultimi due paragrafi mi fanno pensare che non sto capendo come posso usare un padre genitore. Sebbene io utilizzi dipendenze comuni condivise da tutti i moduli figlio presenti in esso, desidero davvero una singola dipendenza che possa essere aggiunta ad altri progetti che coinvolgeranno "bambini" non dipendenti ma correlati. Voglio aggiungere una singola dipendenza che inserirà sia _child1_ che _child2_. – trebor
@trebor Parent POM non è per questo. Per creare un meta-progetto, crea un normale progetto Maven con un nome come 'common-libraries' e fai riferimento a tutti gli altri tuoi progetti come dipendenze. POM padre è creare diverse librerie in un unico passaggio e utilizzare automaticamente l'ordine di compilazione corretto. –