使用Maven项目提供单个jar

Gon*_*gui 7 maven-2 jar

我想向我的客户端提供一个.jar文件,但我的项目目前是用Maven构建的,我有几个模块可以生成一个.jar.

我知道嵌套不同的.jar文件并不是一个好主意,所以我不知道如何实现这一目标.

有任何想法吗?

Pas*_*ent 13

如果你真的想走这个方向,有几种方法可以做到:

根据您的具体要求和限制,您可能更喜欢其中一个或另一个.


wha*_*ley 8

首先,问问自己是否有充分的理由将应用程序及其所有依赖项打包到一个jar中.我根本没有找到很多很好的理由(大多数理由与组织政策愚蠢或只是普通的无知有关).要做的就是将库保存在自己的jar中,并提供包含所有库和应用程序的.zip/.tar.gz.

  1. 一个可执行的.jar,在MANFIEST.MF文件中正确设置了类路径
  2. 一个.bat/.sh脚本,它调用java并根据你的deps构建一个合适的类路径

相反,使用JNLP(更好地称为Java Web Start).

如果你真的希望maven将你所有的依赖项和你的应用程序捆绑在一个jar下,你想要使用的是"jar-with-dependencies"预定义程序集.在Maven的组装插件使用页面也说明了如何这件事为好.