Я вижу, что maven-dependency-plugin
делает это; однако, похоже, копирует все (включая тестовые банки) в целевой каталог. Кто-нибудь знает, как настроить этот плагин, чтобы исключить тестовые банки?
Как скопировать зависимости jars (без тестовых банок) в каталог с помощью maven?
Ответ 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 не будет работать, поскольку исключение теста прерывает сборку и исключает все возможные области. Вместо этого необходимо настроить включенную область.