gpt4 book ai didi

java - 如何在pom中引用第三方jar来创建 super jar

转载 作者:行者123 更新时间:2023-12-01 14:24:30 26 4
gpt4 key购买 nike

在我的项目中,我使用 maven,因为我在项目 pom.xml 中添加了第三方库依赖项

<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>r6</version>
</dependency>

现在这个 jar 在编译时就出现在我的本地存储库中,我可以在 Maven 依赖项中看到。现在我想制作一个 super jar,其中包含三个 jar 文件,其中两个位于我的 eclipse 工作空间中,一个位于本地存储库中。所以我可以使用下面的代码包含两个文件

<property name="First.jar" value="${basedir}/../Some/bin/SomeFirst-${project.version}.jar" />
<available file="${First.jar}" type="file" property="First-found" />
<fail unless="First-found" message="ERROR: failed to find First.jar, looked here: ${First.jar}" />

<!-- verify second.jar is available -->
<property name="second.jar" value="${basedir}/bin/some-project-name-${project.version}.jar" />
<available file="${second.jar}" type="file" property="second-found" />
<fail unless="second-found" message="ERROR: failed to find second.jar, looked here: ${second.jar}" />



<!-- glue all jars together into a super jar -->
<zip destfile="${super.jar}">
<zipfileset src="${Second.jar}" />
<zipfileset src="${First.jar}" excludes="META-INF/*,connectors/*" />
<zipfileset src="Need third file relative path here " excludes="META-INF/*" />
</zip>

我能够使用完整路径,例如:

<zipfileset src="C:/Users/xxx/.m2/repository/com/google/android/support-v4/r7/support-v4-r7.jar"  /> 

但我确信这在其他系统上不起作用。 那么我如何相对地将support-v4-r7.jar从本地存储库引用到Pom.xml。

最佳答案

在 Maven 中创建“uber JAR”的简单方法是使用 Maven "shade" plugin 。这将生成一个包含所有依赖 JAR 的“内容”的 JAR。有多种选项可用于重新组织内容和排除内容。插件文档应该足以帮助您入门。

也许可以通过 Mavan Ant 插件来做到这一点(正如您似乎正在做的那样),但这不是一个好的解决方案。首先,如果/当您更改依赖项时,您的构建可能会中断。

关于java - 如何在pom中引用第三方jar来创建 super jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274652/

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