У меня есть два артефакта maven в моем личном репозитории, com.test.Parent
и com.test.Child
. Child
зависит от Parent
.Maven распаковать транзитные зависимости JAR в папку
Единственное, что я хочу сделать Maven, это загрузить банку Child
и все, на что это зависит, а затем распаковать ее в каталог.
я был в состоянии собрать pom.xml
, который загружает Child
по телефону mvn clean dependency:unpack
, однако для того, чтобы загрузить переходную зависимость, мне пришлось вручную включить его в pom
.
Я хочу позвонить, например maven initialize
, и мои необходимые зависимости будут загружены. То, что я сейчас это:
<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>
Однако, когда я бегу mvn clean initialize
, только файлы Дочерние загружены и распакованы.
POM файл com.test.Child
содержит следующее:
<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>
Видите ли вы какие-либо проблемы с установкой? Эндшпиль заключается в том, что разработчики могут просто загрузить один pom.xml, запустить mvn <something>
, и все зависимости будут автоматически загружаться и распаковываться в определенную структуру.
Благодаря
Edit: Когда я удалить свой локальный репозиторий Maven и запустить этот POM, как Child
и Parent
загружаются. Таким образом, зависимость есть, но Parent
не попал в ворота unpack-dependencies
.