Подтвердить что ты не робот

Как скопировать зависимости jars (без тестовых банок) в каталог с помощью maven?

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

4b9b3361

Ответ 1

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

  • excludeClassifiers Comma Отдельный список классификаторов для исключения. Empty String указывает, что это не исключает ничего (по умолчанию).
  • excludeScope Область исключения. Пустая строка указывает отсутствие областей (по умолчанию).

Ответ 2

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

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

<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 не будет работать, поскольку исключение теста прерывает сборку и исключает все возможные области. Вместо этого необходимо настроить включенную область.