gpt4 book ai didi

Java:如何构建基于 Maven 的项目的独立发行版?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:46:04 27 4
gpt4 key购买 nike

我经常遇到 Java 应用程序或库的发行版使用 Maven 作为他们的构建工具。

遗憾的是,其中一些不提供独立(或可再分发)的 jar。

是否有可能以这样的方式构建基于 Maven 的应用程序,即构建结果包含所有依赖项,并且可以重新分发以开箱即用?

我尝试构建 Jackrabbit 的 OCM 模块。由于一些非常“聪明”的原因,没有可下载的独立版本版本。
所以我用Maven构建了Jackrabbit(Jackrabbit的源码包包括OCM),并得到与 apache repository 中相同的 jar。 。该 jar 包含必要的依赖项,对我来说没用

最佳答案

正如 Dominic 所说,使用程序集插件可以解决问题。您通常会在自己项目的 POM 中配置它,以收集和打包所有必需的依赖项:

  ...
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
...

jar-with-dependencies 由程序集插件预定义,并将在最终包中包含所有依赖项(请参阅文档 here)。

如果您不想在自己的项目中使用 Maven,则需要修改库的 POM 并自行重新打包它们(下载源代码,将上面的代码片段添加到 pom.xml 并运行 mvn package )。如果您使用多个库,请注意重复或不兼容的传递依赖项。 exclusions 在这种情况下可能会有所帮助(请参阅文档 here )。

关于Java:如何构建基于 Maven 的项目的独立发行版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1015520/

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