Набор зависимостей сборки Maven с помощью include не принимает переходные зависимости - PullRequest
10 голосов
/ 16 мая 2011

Я беспокоюсь о цели сборки 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.

Кто-нибудь сталкивался с этой проблемой и есть ли решение?

1 Ответ

15 голосов
/ 16 августа 2011

«включает» и «исключает» также применяются к переходным зависимостям.Попробуйте добавить следующую конфигурацию к вашему dependencySet:

<useTransitiveFiltering>true</useTransitiveFiltering>

http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#dependencySet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...