2017-02-23 148 views
2

我需要从maven-depencency-plugin:copy-dependencies中排除单个工件。Maven depenency插件:复制依赖项:排除单个工件

上Docs:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我发现2个有趣的选项:

excludeArtifactIds这将排除所有文物匹配定工件-ID(上组ID通配符)

excludeGroupIds这将排除与给定组ID相关的所有工件(工件ID上的通配符)

如果给定工件的group-id或artifact-id是唯一的,则这将工作。是否可以排除单个工件,而不使用通配符?

+0

下会怎么做呢? – khmarbaise

回答

3

您可以通过使用两个execution部分来实现此目的。

比方说,你有以下的依赖:

javax.mail:mailapi 
javax.mail:mail 
sun-javamail:mail 
org.jdom:jdom2 

,你只想排除javax.mail:mail这股都groupId和其他文物的artifactId。为什么你需要复制的依赖

 <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>