任何帮助或指示将不胜感激。我需要在构建时将两个字段注入到我的项目的所有依赖项 JAR 的清单文件中。
依赖 jars 已经构建并从 repo 中提取。我需要找到一种方法来获取 JAR 的 Manifest 文件,然后使用当前 pom 文件中的变量对其进行修改。有没有人这样做过,知道如何做到这一点。提前感谢您的时间和回复
任何帮助或指示将不胜感激。我需要在构建时将两个字段注入到我的项目的所有依赖项 JAR 的清单文件中。
依赖 jars 已经构建并从 repo 中提取。我需要找到一种方法来获取 JAR 的 Manifest 文件,然后使用当前 pom 文件中的变量对其进行修改。有没有人这样做过,知道如何做到这一点。提前感谢您的时间和回复
这实际上并不是 Maven 允许您做的事情。从 Maven 的角度来看,每个具有特定名称的 JAR 都应该与每个具有相同名称的其他 JAR 完全相同。
例如,假设我的项目依赖于abc-1.0.jar
. 我指定此依赖项是因为 ALphabet 团队abc
为 1.0 版本发布了一个具有指定 API 的库。我应该能够从世界上的任何存储库中获取这个 jar 文件,甚至当我的 Internet 中断时从街上的邻居那里获取并手动将其安装到我的本地存储库,并且它应该是完全相同的文件。如果它不是同一个文件,那么我将无法保证.class
jar 中的文件将包含使构建成功而没有错误所需的库代码。
如果你真的有动力去做这项工作,那么理论上是可能的。您可以编写一个脚本,它将:
properties
部分的 POM XML 并从那里解析出各个属性以及依赖项 jar 的名称manifest_injected
分类器)的空 Maven 项目,在其上运行mvn validate
以确保已下载依赖项并将其放置在本地存储库中(如果已找到)祝你好运!
您可以在二进制存储库中轻松完成。例如,Artifactory 允许您编写将在任何下载时触发的用户插件。在此侦听器中,您可以编写自己的代码 - 打开 jar,更改清单并提供更改后的 jar 而不是原始 jar(并将其缓存以备下次使用)。