Um dies mit Profilen zu implementieren, können Sie zwei Profile verwenden, ein <activeByDefault>
mit allen Modulen und ein anderes mit dem gewünschten Modul. Etwas wie folgt aus:
<profiles>
<profile>
<id>all</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>module-1</module>
...
<module>module-n</module>
</modules>
</profile>
<profile>
<id>module-2</id>
<modules>
<module>module-2</module>
</modules>
</profile>
<profiles>
Und dann rufen Sie wie folgt aus:
mvn -Pmodule-2 package
Zwei Dinge zu beachten:
- Sie müssen die
<modules>
aus dem POM in einem „default bewegen "Profil (weil <modules>
von einem Profil nur additiv sind, verstecken sie nicht die Module, die im POM deklariert sind).
- Wenn Sie es als
<activeByDefault>
markieren, wird das Profil "default" ausgewählt, wenn nichts anderes aktiv ist, aber deaktiviert, wenn etwas anderes ist.
One sogar den Namen des Moduls parametrisieren könnte und sie als Eigentum übergeben:
<profiles>
...
<profile>
<id>module-x</id>
<activation>
<property>
<name>module-name</name>
</property>
</activation>
<modules>
<module>${module-name}</module>
</modules>
</profile>
<profiles>
und rufen Maven wie folgt aus:
mvn -Dmodule-name=module-2 package
Aber das ist eine schlechte IMHO Implementierung I bevorzugen die -pl
"fortgeschrittenen" Reaktoroptionen (weniger xml, viel mehr Leistung und Flexibilität):
mvn -pl module-2 package
@Pascal Thivent Einfach genial .. Ich weiß nicht, was ich sagen soll .. danke m8, du bist unübertroffen, wenn es darum geht, Maven – ant
Ich stimme @Pascal ist ein Maven Genie. Ich würde auch die Stimme hinzufügen, dass es sauberer ist, einen Reaktor zu bauen, als mehrere Profile zu konfigurieren. –