我需要从maven-depencency-plugin中排除单个工件:copy-dependencies。
关于文档:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我找到了两个有趣的选项:
excludeArtifactIds ,它将排除与给定的artifact-id匹配的所有工件(group-id上的通配符)
excludeGroupIds ,它将排除与给定group-id匹配的所有工件(artifact-id上的通配符)
如果给定工件的group-id或artifact-id是唯一的,那么这将起作用。是否可以在不使用通配符的情况下排除单个工件?
答案 0 :(得分:3)
您可以使用两个execution
部分来实现此目的。
假设您有以下依赖项:
javax.mail:mailapi
javax.mail:mail
sun-javamail:mail
org.jdom:jdom2
并且您只想排除与其他工件共享groupId和artifactId的javax.mail:mail
。
以下会这样做:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeArtifactIds>mail</excludeArtifactIds>
<includeGroupIds>javax.mail</includeGroupIds>
</configuration>
</execution>
<execution>
<id>copy-dependencies2</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeGroupIds>javax.mail</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>