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