java - 根据 Maven 中的组 ID 从依赖项中去除版本号

标签 java maven

我有一个项目,它具有第三方依赖项,以及对内部项目的依赖项。我需要从内部开发的依赖 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/

相关文章:

java - ExecutorService 与任务链关闭

java - 将样式表添加到 javafx 时遇到问题

java - Maven 插件可以在作为构建的一部分创建的 JAR 上运行吗

java - 正在创建表单上的输入数据,但不保留正在传递的值,我该如何解决这个问题?

java - 调试从 JAVA 程序调用的 MATLAB 函数

java - OSGi 中的 NoClassDefFoundError 尽管它是导出和导入的

java - 无法使用 jasypt 加密进行 Maven 发布

java - RabbitListener 不是注释类型

java - ResourceBundle 无法从 Web 应用程序内的包加载属性文件

maven - 如何找到请求丢失 POM 的 POM?