2017-07-25 3 views
0

Ich habe ein Maven-Projekt, bestehend aus einem übergeordneten Projekt und mehreren Modulen, foo, bar, foobar und .Maven: Erstellen Sie verschiedene WAR-Dateien des gleichen Projekts einschließlich unterschiedlicher Modulabhängigkeiten

<modules> 
    <module>foo</module> 
    <module>bar</module> 
    <module>foobar</module> 
    <module>web</module> 
</modules> 

web hat foo, bar und foobar als Abhängigkeiten und wird als WAR gebaut. Aus verschiedenen Gründen muss ich einen weiteren WAR bauen, der foo und bar enthält, aber nicht foobar. Was ist der beste Weg, dies zu erreichen? Gibt es eine Möglichkeit, maven-Profile zu verwenden, um die verschiedenen Abhängigkeiten zu definieren? Oder ist die beste Lösung nur ein zweiten Krieg-Gebäude Modul (zB web2) ohne foobar hinzufügen, wie die Abhängigkeit wie diese Antwort schon sagt: Maven generating two different WAR files for same project (siehe „Multi-Modul-Struktur“ in dieser Antwort)

+2

Machen Sie ein anderes Modul web-2 als Web mit verschiedenen Abhängigkeiten ... sauberste Lösung ... – khmarbaise

+0

Okay, ich werde ein zweites Web-Modul versuchen. – rostbot

Antwort

0

Unter der Annahme Artefakt Typ Ihrer Top level pom ist "Pom", der modules-Knoten ist nur ein Aggregator und spezifiziert die Build-Ausführungsreihenfolge - er gibt nicht an, was die Abhängigkeiten für jedes untergeordnete Modul sind.

Sie können einfach Web2 als ein anderes Modul an der Unterseite in der Eltern Pom, und dann in Web2 Pom können Sie Artefakt Art des Krieges und Abhängigkeiten von foo und bar angeben. Foo und Bar werden in deinem Kriegsartefakt enthalten sein, und Foobar nicht.

+0

Sie sollten sich niemals auf die Reihenfolge des Builds verlassen, basierend auf der Reihenfolge der Module in der Pom-Datei. Definieren Sie immer die richtigen Abhängigkeiten zwischen den Modulen und Maven wird damit umgehen .... – khmarbaise

Verwandte Themen