Maven - Füge jar-with-dependencies als Abhängigkeit hinzu
Frage..
Ich möchte eine Abhängigkeit von einem Maven-Glas hinzufügenmit seinen Abhängigkeiten verpackt.
Einzelheiten..
Ich habe ein Maven-Projekt mit mehreren Modulen, in dem eines der Module von nativen Bibliotheken und dergleichen abhängt. Als Teil des Builds werden die Abhängigkeiten in einem Paket zusammengefasstjar-with-dependencies
wie hier gezeigt:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Alles gut, ich bekomme zwei Gläser, wenn ich baue:
seaniscool-0.0.1-SNAPSHOT.jar
seaniscool-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Ich möchte dieses Artefakt jedoch in einem anderen Modul desselben Projekts verwenden. Wenn ich das Modul einfach als Abhängigkeit hinzufüge, erhalte ich das Jar ohne die eingebauten Bibliotheken.
Ich könnte die Build-Konfiguration duplizieren, um die nativen Bibliotheken auch in das 2. Modul aufzunehmen. Sie ist nicht sehr umfangreich, würde es aber vorziehen, dies nicht zu tun.
Irgendwelche Ideen, wie ich das hinzufügen kannjar-with-dependencies
als abhängigkeit und damit abhängig von den enthaltenen bibliotheken?
Einige Gedanken..
Ich weiß, dass ich ein separates Glas mit Testklassen bauen kann, auf die Maven verweisen kann:
Im 1. Modul:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
Im 2. Modul:
<dependency>
<groupId>my.group.id</groupId>
<artifactId>my.artifact.id</artifactId>
<version>my.version</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Ist dieses Konzept hier vielleicht übertragbar?