gpt4 book ai didi

java - 将依赖项 jar 条目添加到 jar 索引 (/META-INF/INDEX.LIST)

转载 作者:行者123 更新时间:2023-11-30 09:40:25 33 4
gpt4 key购买 nike

在开发小程序时,我创建了一个带有 .jar 打包和不同 .jar 依赖项的 maven 项目。现在我想向我的项目的 jar 添加一个存档索引 (/META-INF/INDEX.LIST),它不仅包含这个 jar 的条目,而且还包含所有依赖 jar 的条目.

使用 jar 命令行工具我可以用

> jar i myproject.jar dependency1.jar dependency2.jar ...

使用 maven-jar-plugin 的 maven 存档索引标志只有 myproject.jar 的条目出现在存档索引中,而不是依赖 jar 的条目:

  ...
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<index>true</index>
</archive>
</configuration>
</plugin>
...

是否有可能使用 maven 将依赖项的条目包含到索引文件中?

感谢您的任何提示...

最佳答案

我终于用下面的配置解决了它:

  <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<index>true</index>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>

使用此配置,所有 jar 文件(项目和依赖项)都列在 MANIFEST.MF 的 类路径及其条目(目录级别的文件和根据 jar 索引文档的包名称) 将出现在 INDEX.LIST 中。

注意 #1:同时使用 indexaddManifest 之前的 2.4 版会导致 http://jira.codehaus.org/browse/MJAR-69 中描述的错误.所以请务必使用 2.4 版的 maven-jar-plugin。

注意#2:由于 http://jira.codehaus.org/browse/MNGECLIPSE-1219 中描述的错误,如果使用Resolve Workspace artifacts(Eclipse 运行配置的选项)解析依赖关系,则依赖关系既不会出现在 MANIFEST.MF 中,也不会出现在 INDEX.LIST 中。因此,请确保您 a) 首先安装/部署所有依赖项,并且 b) 在使用 eclipse 构建项目之前,如有必要,禁用 Resolve Workspace artifacts 选项(或关闭 eclipse 中的依赖项项目)。

注意 #3:不要同时使用 jar-with-dependencies (maven-assembly-plugin) 和 addClasspath (maven- jar-plugin),否则你将把生成的 jar 中的所有条目加倍。

注意 #4:java jar 命令行工具也评估 MANIFEST.MF 的类路径(除了在调用该工具时显式列出 jar 文件外,如我的初始示例),请参阅 jar 文档 的索引示例。

由于注释 #2,我将调查 ANT 的 jar...

非常感谢@khmarbaise 为我指明了正确的方向:-)

关于java - 将依赖项 jar 条目添加到 jar 索引 (/META-INF/INDEX.LIST),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429788/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com