Ich habe zwei Mavenartefakte in meinem privaten Repository, com.test.Parent
und . Child
ist abhängig von Parent
.Maven packen transitive Abhängigkeiten JAR in einen Ordner
Das einzige, was ich Maven tun soll, ist das Herunterladen der Child
Glas und alles, worauf es ankommt, und dann entpacken Sie es in ein Verzeichnis.
konnte ich eine pom.xml
zusammen stellen, die die Child
Downloads von mvn clean dependency:unpack
jedoch um den Aufruf der transitive Abhängigkeit schließe ich es musste, um manuell im pom
.
Was ich möchte ist zum Beispiel maven initialize
aufrufen und meine erforderlichen Abhängigkeiten würden heruntergeladen werden. Was ich jetzt haben, ist dies:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.test</groupId>
<artifactId>Child</artifactId>
<version>1.2.3</version>
<type>jar</type>
<includes>**</includes>
<excludes>META-INF/**</excludes>
<outputDirectory>somepath/sources</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>unpack-dependencies</id>
<phase>initialize</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<excludeTransitive>false</excludeTransitive>
<includes>**</includes>
<outputDirectory>somepath/depend</outputDirectory>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>Child</artifactId>
<version>1.2.3</version>
<type>jar</type>
</dependency>
</dependencies>
</plugin>
</plugins>
Allerdings, wenn ich mvn clean initialize
laufen, nur die Child-Dateien werden heruntergeladen und entpackt.
POM-Datei von com.test.Child
enthält diese:
<groupId>com.test</groupId>
<artifactId>Child</artifactId>
<version>1.2.3</version>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>Parent</artifactId>
<version>7.8.9</version>
</dependency>
</dependencies>
Haben Sie ein Problem mit dem Setup zu sehen? Das Endspiel ist, dass Entwickler einfach eine pom.xml herunterladen können, mvn <something>
ausführen und alle Abhängigkeiten werden automatisch heruntergeladen und in eine bestimmte Struktur entpackt.
Dank
Edit: Wenn ich meine lokalen Maven-Repository löschen und diese pom laufen, beide Child
und Parent
heruntergeladen werden. Also die Abhängigkeit ist da, aber Parent
wird nicht von der unpack-dependencies
Ziel abgeholt.