当前位置: 首页 > 知识库问答 >
问题:

Maven Dependency插件:复制依赖项:排除单个工件

孟浩慨
2023-03-14

我需要从maven Dependence插件中排除单个工件:复制依赖项。

在文档上:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我发现了两个有趣的选择:

ExcludeArtifactId,它将排除与给定工件id匹配的所有工件(组id上的通配符)

ExcludeGroupId,它将排除与给定组id匹配的所有工件(工件id上的通配符)

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

共有1个答案

梁丘璞瑜
2023-03-14

您可以通过使用两个执行部分来实现这一点。

假设您有以下依赖项:

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

您只想排除与其他工件共享group pId和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>
                    <!--include all in group apart from one-->
                    <configuration>
                        <excludeArtifactIds>mail</excludeArtifactIds>
                        <includeGroupIds>javax.mail</includeGroupIds>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-dependencies2</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <!--include all other dependencies-->
                    <configuration>
                        <excludeGroupIds>javax.mail</excludeGroupIds>
                    </configuration>
                </execution>                    
            </executions>                
        </plugin>
 类似资料:
  • 我有一个Tycho构建,它为Xtext DSL功能生成eclipse插件。我现在想做一个maven插件,它可以处理DSL文件。问题是要将DSL插件所依赖的工件放入maven插件中,因为这些工件不在maven存储库中。此外,我希望maven插件自动依赖于DSL插件所依赖的相同工件。 我认为创建一个带有依赖项的 über-jar 将是最好的方法。问题是检索 DSL 插件的依赖项并将其复制到一个目录中,

  • 问题内容: 我有一个项目,需要以下Maven jibx插件: 在jibx插件pom内部,有一个xpp3依赖关系,我想从我的项目构建过程中排除它(由于某种原因,我无法在私有存储库中拥有它)。 有没有一种方法可以配置我的pom.xml(而不是插件pom)来排除该依赖关系? 编辑:我试图从插件pom中删除xpp3依赖项,并且该项目可以成功构建,所以我知道依赖项不是强制性的。 问题答案: 这是一个示例,其

  • 关于maven和传递依赖排除有几个问题。然而,我不能让它工作。我的pom中有一些依赖项,它们重新打包了一些库,以减小pom的大小。到目前为止,这是成功的。但是当我运行时,这些可传递的依赖项会被写入。类路径文件。尽管它们被排除在外,如以下摘录所示。 Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06;2015-04-22T13:57

  • Maven插件及其在父pom中定义的依赖项,我不希望我的子pom包含该插件依赖项。 例如,如果有1个父级和100个子级,99个使用该插件并希望在一个子级中排除该插件。 我们如何才能实现这一目标?

  • 例如,我有依赖性:

  • 我试图摆脱。SF,。DSA和。bouncyCastle中的RSA文件,这样我就可以将jar包含到我的jar中并远程部署它。我发现我需要使用maven-依赖-插件,但是排除似乎并没有真正……排除。有点破坏了整个目的。 如果我解压缩文件,签名密钥仍然在那里,特别是在META-INF目录中。如果我手动删除它们并重新jar它,应用程序就可以工作。我只需要弄清楚如何自动排除这些文件! 下面是我的POM文件,