首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven :修改依赖JAR的清单文件

Maven :修改依赖JAR的清单文件
EN

Stack Overflow用户
提问于 2013-07-25 20:04:36
回答 2查看 1.7K关注 0票数 7

任何帮助或指点都会非常感谢。我需要在构建时将两个字段注入到项目的所有依赖JAR的Manifest文件中。

依赖jars已经构建,并从repo中拉出。我需要找到一种方法来获得JAR的Manifest文件,然后用我当前pom文件中的变量修改它。以前有没有人这样做过或者知道怎么做。提前感谢您的时间和回复

EN

回答 2

Stack Overflow用户

发布于 2014-01-03 15:56:10

这实际上不是Maven允许您做的事情。从Maven的角度来看,具有特定名称的每个JAR应该与其他具有相同名称的JAR完全相同。

例如,假设我的项目依赖于abc-1.0.jar。我之所以指定这个依赖项,是因为ALphabet团队为1.0版本发布了一个具有指定API的abc库。我应该能够从世界上的任何存储库获得这个jar文件,甚至在我的Internet出现时从街道上的邻居那里获得它,并手动将其安装到我的本地存储库,并且它应该是完全相同的文件。如果它不是同一个文件,那么我就不能保证jar中的.class文件将包含我需要的库代码,以使我的构建成功而没有错误。

如果你真的有动力去做这件事,那么,理论上这是可能的。您可以编写一个脚本,该脚本将:

  1. 解析properties部分的POM,并从中解析出各个属性以及依赖jar的名称
  2. 对于每个带有分类器"manifest_injected“的依赖jar,尝试在本地存储库中找到它。如果它不存在,则生成一个具有给定依赖项(没有manifest_injected分类器)的空Maven项目,在该项目上运行mvn validate以确保已下载依赖项并将其放置在本地存储库中(如果已找到依赖项)
  3. 克隆所有上述JAR文件,打开克隆,对先前解析的属性执行所需的清单注入,并将注入的JAR保存到Maven repository
  4. Call中的适当位置(作为参数传递给脚本的Maven版本)。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2014-01-03 16:01:59

您可以在您的二进制存储库中轻松完成此操作。例如,Artifactory允许您编写a user plugin that will be triggered on any download。在此侦听器中,您可以编写自己的代码-打开jar,更改清单并提供更改后的jar,而不是原来的jar(并缓存它以备下次使用)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17857529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档