2009-08-23 5 views
1

Ich habe ein Projekt Eine wird mit MVN Assembly: Assembly, die mir eine JAR-Datei mit Abhängigkeiten erstellt. Dieses Projekt erhält im Grunde einen Dateipfad und konvertiert es in XML.Maven-Konfiguration für zwei Projekte

Jetzt muss ich ein neues Projekt B schaffen, die A durch ein Verzeichnis zu Fuß und mit der Aufforderung mehrmals A wickeln wird. HINWEIS: Sie müssen verschiedene Anwendungen sein. Ich bin nicht in der Lage zu ändern A Ändern der Parameter.

Ich möchte, dass, wenn B baut, wird es zunächst Ein bauen und bekommt es jar-Datei ist.

Welches ist der beste Weg, dies in einer Pom-Datei zu konfigurieren? Sollte ich zwei Poms haben? Gleicher Pom, aber zwei Gläser werden gebaut?

Danke fürs Lesen!

+0

Ich bin verwirrt - können Sie ein ändern oder nicht? Um dies in einem Pom implementieren zu können, müssten Sie A's Pom modifizieren. –

+0

Ja, A es ist auch ein eigenes Projekt. Ich könnte den Pom ändern, aber ich kann nicht ändern, wie es heißt. – Macarse

Antwort

4

Ich würde damit umgehen, indem ich einen Aggregator POM mit A und B als modules hinzufügen. Dann baut man einfach den Aggregator jedes Mal auf, um A vor B zu bauen. Dies gibt Ihnen die Flexibilität, A und B sowohl einzeln als auch zusammen zu bauen.


Wenn Sie entschlossen sind, von innen B A Build aufrufen, könnte es unter Verwendung des maven-exec-plugin getan werden, eine andere Maven Instanz aufzurufen.

Zum Beispiel:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.1</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>exec</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <executable>mvn</executable> 
    <!--specified as a property below--> 
    <workingDirectory>${projectA.path}</workingDirectory> 
    <arguments> 
     <argument>clean</argument> 
     <argument>install</argument> 
    </arguments> 
    </configuration> 
</plugin> 

... 

<properties> 
    <projectA.path>/path/to/project/a</projectA.path> 
</properties> 
Verwandte Themen