У меня есть проблема с целью сборки Maven. У меня есть проект, который имеет ряд зависимостей, каждый из которых может иметь свои собственные транзитивные зависимости. Если я запускаю mvn dependency: tree, то я вижу, что все зависимости, включая транзитивные, выполнены.
Это не тот случай, когда я запускаю цель сборки. Что бы я хотел, это когда я добавляю зависимость, которая будет включена, тогда все ее транзитивные зависимости также включены. В следующем примере у меня есть три зависимости, которые я хотел бы включить. Поэтому, когда сборка выполнена, я ожидал наличия этих зависимостей и любых транзитивных зависимостей для этих зависимостей.
<assembly>
<baseDirectory>${artifactId}/${artifactId}-${version}</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
</fileSets>
<dependencySets>
<dependencySet>
<unpack>false</unpack>
<scope>runtime</scope>
<outputDirectory>/lib
</outputDirectory>
<includes>
<include>com.acme.core:library-1</include>
<include>com.acme.core:library-2</include>
<include>com.acme.core:library-2</include>
</includes>
</dependencySet>
</dependencySets>
Но если вы откроете zip файл, вы найдете только те три зависимости, которые есть во время выполнения, приложение не подходит для цели из-за отсутствия библиотек. Я считаю это совершенно неинтуитивным, поскольку это противоречит поведению, которое можно было бы ожидать от POM.
Кто-нибудь столкнулся с этой проблемой и есть ли решение?