2016-04-06 17 views
1

Ich habe die unten ProjektstrukturWie teilen Sie Projektabhängigkeiten zwischen mehreren Projekten in Maven?

Main Project 
--Sub Project 1 
    - child 1 
     * pom-child1 
    - child 2 
     * pom-child2 
    * pom-sub-project1 

--Sub Project 2 
     * pom-sub-project2 
* main project pom 

Ich hatte definiert wenige Projektabhängigkeiten in Haupt pom Projekt und bezeichnen es in der Kinder- und Unter Projekt Poms. Aber ich finde Probleme, wenn der Pom kein direktes Kind des Hauptprojekts pom ist. Gibt es einen Weg, es zu lösen?

Beispiel, Hauptprojekt pom

<packaging>pom</packaging> 
<version>dev</version> 
<name>parent-project</name> 
.. 
<properties><spring-version>3.1.0.RELEASE</spring-version></properties> 

Kind POM

<parent> 
     <groupId>com.test.pkg</groupId> 
     <artifactId>test-proj</artifactId> 
     <version>${project.version}</version> 
    </parent> 

Die $ {project.version} wird nicht aufgelöst, wenn es kein direktes Kind eines Elternteils pom ist aufgrund welche keine der Projektabhängigkeiten aufgelöst sind.

Auch ich lese über Eigenschaften-Maven-Plugin, die zum Lesen von Eigenschaften aus externen Eigenschaften Datei verwendet wird. Kann dies zum Lesen der Abhängigkeitsversion verwendet werden oder gibt es ein anderes Plugin/Ansatz, das in diesem Fall verwendet werden könnte?

+0

ist das Hauptprojekt POM auch als Eltern des Teilprojekts 1 und 2 definiert? Werden Unterprojekte als Eltern von Kinderprojekten definiert? Um welche Art von Problem handelt es sich? –

+0

Welche Verbindung funktioniert nicht? Zwischen welchen Projekten? – Christian

+0

@ A.DiMatteo Beispiel: Unter dem Hauptprojekt habe ich verschiedene Web-Projekte (Sub-Projekt 1,2 ..) unabhängig voneinander. Jedes dieser Webprojekte hat Untermodule, die allgemeine Bibliotheken sein können, andere Webprojekte, die miteinander verwandt sind. Jeder von ihnen hat seinen eigenen Pom. Die POM-Datei des Hauptprojekts hat Projektabhängigkeiten und eine Version, auf die nur zugegriffen werden könnte, wenn es ein direktes Sub-Pom ist, während in den zugrundeliegenden Untermodulen die Projektversion oder die Abhängigkeiten während des Builds nicht aufgelöst werden. Weitere Informationen zur Frage hinzufügen – Poppy

Antwort

0

können Sie nicht

${project.version} 

verwenden, um Ihre Eltern Version zu definieren, weil das Kind standardmäßig die Eltern Version erbt.

Legen Sie die Elternversion mit dem gültigen Wert und nicht mit einer Eigenschaft fest.

Wenn Sie dies tun, sollte es funktionieren und Sie müssen die Childs-Version nicht angeben, da es von der übergeordneten geerbt wird.

Verwandte Themen