我有一个项目,它具有第三方依赖项,以及对内部项目的依赖项。我需要从内部开发的依赖 Artifact 中删除版本号。
例如:spring-2.5.6.jar
在最终输出中应为 spring-2.5.6.jar
,但 MyInternalProject-1.0.17 .jar
需要更改为 MyInternalProject.jar
。
我可以通过组 ID 轻松识别内部依赖项(它们都类似于 com.mycompany.*
)。 maven-dependency-plugin 有一个 stripVersion 选项,但它似乎选择性不够。有没有办法做到这一点,除了显式命名每个依赖项以及它们的最终名称应该是什么?
换一种说法:
我希望基于组 ID 的 Artifact 的 maven- assembly-plugin 有不同的 outputFileNameMapping
。有办法做到这一点吗?
最佳答案
我认为你可以使用以下食谱:
首先,在聚合器 pom 中使用 dependency:copy-dependencies
目标是将你的 jar 复制到某个中间位置。您将需要执行两次,其中一次执行 <stripVersion>true</stripVersion>
为了你的内部依赖;和一个带有 <stripVersion>false</stripVersion>
对于第三方库。您可以根据 GroupId 包含/排除 Artifact ,请参阅 http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html了解完整详细信息。
那么使用 maven-assemble-plugin 构建 .zip 应该是一个简单的任务!
关于java - 根据 Maven 中的组 ID 从依赖项中去除版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18751288/