Как скопировать банки зависимостей (без тестовых) в каталог с помощью maven? - PullRequest
24 голосов
/ 29 ноября 2011

Я вижу, maven-dependency-plugin делает это; однако, кажется, что все (включая тестовые файлы) копируется в каталог назначения. Кто-нибудь знает, как настроить этот плагин, чтобы исключить тестовые банки?

Ответы [ 2 ]

27 голосов
/ 02 июля 2015

Майк ответил на свой вопрос в комментарии выше. Я думаю, что вариант использования Майка похож на мой, где я хочу скопировать все jar-файлы, от которых я зависел, а также свой jar-файл, чтобы создать иерархию каталогов, достаточную для выполнения программы, без включения этих зависимостей непосредственно в мой jar-файл. 1001 *

Ответ для достижения этой цели:

<includeScope>compile</includeScope>

Эта директива входит в раздел файла pom.xml для подключаемого модуля maven-dependency. Например:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <includeScope>compile</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>

excludeScope не будет работать, поскольку исключение теста отменяет сборку и исключает все возможные области. Вместо этого необходимо отрегулировать включенный объем.

20 голосов
/ 29 ноября 2011

Неясно, хотите ли вы исключить банки с test scope или проверить связанные банки (test классификатор ). В любом случае, есть два свойства зависимости: копия-зависимости , которые могут вам помочь.

  • excludeClassifiers Разделенный запятыми список классификаторов для исключения. Пустая строка означает, что ничего не исключается (по умолчанию).
  • excludeScope Область, которую необходимо исключить. Пустая строка указывает на отсутствие областей (по умолчанию).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...