# Buendeln von jar und ear in einem Projekt



## Wiplash4 (12. Feb 2021)

Ich habe 2 bisher seperate Maven-Projekte. Eines ist ein jar, das andere ein ear. Das jar wird zuerst gebaut, dann via Maven in das ear eingefuegt, dann wird das ear gebaut.
Bisher muss ich immer beide nacheinander ausfuehren.

Nun versuche ich die beiden in einem Maven-Projekt zu buendeln. Leider kann ich die maven-pom-plugin nicht verwenden, denn das ear und jar Projekt haben je schon einen parent und das kann leider nicht geaendert werden.

Ich suche also ein Maven Projekt, mit dem man erst ein Profil fuer das jar-Project ausfuehren kann und dann ein Profil fuer das ear-Project.

Sollte das in Maven nicht gehen, waere ich auch mit einer Eclipse-Loesung zufrieden.


----------



## LimDul (12. Feb 2021)

Irgendwas ist schräg an dem Setup. Ein Projekt baut ein Jar und fügt es in ein anderes Projekt ein? Das ist nicht der Weg den maven vorsieht.

Korrekt wäre es => Projekt 1 baut und packt es ins Repository, Projekt 2 zieht sich die Dependency aus dem Repostiroy. Da wären so CI-Tools wie Jenkins das Mittel der Wahl normalerweise, um sowwas nacheinander auszuführen.

Entweder es sind zwei getrennte Projekte - dann kommunzieren die nur über das Repository mit fixen Dependencies. Oder es ist in Projekt, aber dann muss man das auch anpassen mit einem gemeinsamen Parent bzw. das eine als Submodul des anderen sehen.


----------



## Wiplash4 (12. Feb 2021)

Nun, du hast Recht. Das jar Projekt kopiert das Buildproduct ins Maven Repository und von dort nimmt sich das ear Projekt das Artifact.

Aber ich will ein pom bauen, mit dem beide Projekte nacheinander gebaut werden. Es soll quasi automatisiert werden.


----------



## mrBrown (13. Feb 2021)

Das müsste über ein "aggregator"-Projekt gehen, die beiden anderen Projekte müssten dann Module davon sein:


```
<project>
  <modelVersion>4.0.0</modelVersion>
  <packaging>pom</packaging>
  <groupId>com.example</groupId>
  <artifactId>aggregator</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <modules>
    <module>jar-projekt</module>
    <module>ear-projekt</module>
  </modules>
</project>
```

EDIT: die Projekte müssen afaik auch nicht in Unter-Ordnern des Aggregator-Projekts liegen, man kann beliebige relative Pfade zu den Modulen setzen.
Bauen kann/muss man dann über das Aggregator-Projekt.


----------

