我经常遇到 Java 应用程序或库的发行版
使用 Maven 作为他们的构建工具。
遗憾的是,其中一些不提供独立(或可再发行)的 jar。
是否可以通过这种方式构建基于 Maven 的应用程序:
这构建结果包含所有依赖项并且可以重新分配以开箱即用?
我尝试构建 Jackrabbit 的 OCM 模块。
由于一些非常“聪明”的原因,没有可下载的独立版本
版本。
所以我用Maven构建了Jackrabbit(Jackrabbit的源码包包括
OCM),并得到了与在阿帕奇存储库。
罐子doesn't包含必要的依赖关系并且是useless大部头书。
正如多米尼克所说,使用程序集插件就可以解决问题。您通常会在自己项目的 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).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)