2017-02-23 151 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>