我想向我的客户交付一个单独的.jar文件,但是我的项目当前是用Maven构建的,并且我有几个模块,每个模块都生成一个.jar。
我知道嵌套不同的.jar文件不是一个好主意,所以我不确定如何才能做到这一点。
有什么想法吗?
发布于 2010-10-06 22:16:15
首先,问问自己,是否有充分的理由将应用程序及其所有依赖项打包到单个jar中。我根本没有找到一个很好的理由(大多数原因与组织政策的愚蠢或纯粹的无知有关)。方法是将库保存在它们自己的jars中,并提供一个.zip/.tar.gz文件,其中包含所有的库和应用程序
构建适当的类路径
相反,使用JNLP (更为人熟知的是Java Web Start)。
如果您真的想让maven将所有依赖项和应用程序捆绑到一个jar下,那么您需要使用的是"jar-with-dependencies" predefined assembly。maven assembly plugin usage page还显示了如何实现这一点。
发布于 2010-10-06 22:54:24
如果你真的想朝这个方向发展,有几种方法可以做到:
带Maven Assembly Plugin的
jar-with-dependencies预定义的程序集描述符(这将解压dependencies)根据您的确切要求和约束,您可能更喜欢其中之一。
发布于 2012-08-14 04:55:05
你也可以试试Maven Shade插件。http://maven.apache.org/plugins/maven-shade-plugin/
有关如何使用Shade插件的一般说明可以在使用页面上找到。下面给出的示例中描述了一些更具体的用例。最后但并非最不重要的是,用户偶尔会向插件的wiki页面提供额外的示例、提示或勘误表。
如果您对插件的使用仍有疑问,请随时联系用户邮件列表。邮件列表中的帖子已存档,并且可能已经包含您的问题的答案,作为旧帖子的一部分。因此,浏览/搜索邮件存档也是值得的。
如果您觉得插件缺少某个功能或有缺陷,您可以在我们的问题跟踪器中填写功能请求或错误报告。创建新问题时,请对您所关注的问题进行全面描述。特别是对于修复bug,开发人员能够重现您的问题是至关重要的。出于这个原因,非常感谢整个调试日志、POMs或更好的附加到该问题的小演示项目。当然,补丁也是受欢迎的。贡献者可以从我们的源代码库中检出该项目,并在帮助Maven的指南中找到补充信息。
https://stackoverflow.com/questions/3873265
复制相似问题