Maven 2 用Maven项目交付单个jar
我想向我的客户交付一个.jar文件,但我的项目目前是用Maven构建的,我有几个模块,每个模块生成一个.jar文件 我知道嵌套不同的.jar文件不是一个好主意,所以我不确定如何实现这一点Maven 2 用Maven项目交付单个jar,maven-2,jar,Maven 2,Jar,我想向我的客户交付一个.jar文件,但我的项目目前是用Maven构建的,我有几个模块,每个模块生成一个.jar文件 我知道嵌套不同的.jar文件不是一个好主意,所以我不确定如何实现这一点 有什么想法吗?实际上,嵌套.jar文件是不可能的。罐子里不能有其他的罐子 .war和.ear文件可以包含JAR,如果您正在交付J2EE应用程序,这是一个很好的解决方案 但是,如果您的应用程序只是J2SE,我建议您查看。顾名思义,它允许您为构建创建一个单一的二进制发行版。首先,问问自己是否有很好的理由将应用程序及
有什么想法吗?实际上,嵌套.jar文件是不可能的。罐子里不能有其他的罐子 .war和.ear文件可以包含JAR,如果您正在交付J2EE应用程序,这是一个很好的解决方案
但是,如果您的应用程序只是J2SE,我建议您查看。顾名思义,它允许您为构建创建一个单一的二进制发行版。首先,问问自己是否有很好的理由将应用程序及其所有依赖项打包到一个jar中。我还没有找到一个很好的理由(大多数原因都与组织政策的愚蠢或纯粹的无知有关)。方法是将库保存在它们自己的jar中,并提供一个包含所有库和应用程序的.zip/.tar.gz
如果您真的想让maven将所有依赖项和应用程序捆绑在一个jar下,那么您想要使用的是。图中还显示了如何实现这一点。如果您真的想朝这个方向发展,有几种方法:
- 使用以及预定义的程序集描述符(这将解包依赖项)
- 使用(与上面的类似,但提供更大的灵活性)
- 使用(使用及其自定义类加载器允许JAR嵌套)
根据您的具体要求和限制,您可能会选择其中一种。您也可以尝试Maven Shade插件。 有关如何使用Shade插件的一般说明,请参见使用页面。下面给出的示例中描述了一些更具体的用例。最后但并非最不重要的一点是,用户偶尔会向插件的wiki页面提供额外的示例、提示或勘误表 如果您对插件的使用仍有疑问,请随时联系用户邮件列表。邮件列表中的帖子已存档,并且可能已经包含您问题的答案,作为旧线程的一部分。因此,也值得浏览/搜索邮件存档
如果您觉得插件缺少一个功能或有缺陷,您可以在我们的问题跟踪程序中填写一个功能请求或错误报告。创建新问题时,请全面描述您的担忧。特别是对于修复bug,开发人员能够重现您的问题是至关重要的。出于这个原因,我们非常感谢完整的调试日志、POM或附加到该问题的小演示项目。当然,补丁也是受欢迎的。贡献者可以从我们的源代码库中查看该项目,并在帮助Maven的指南中找到补充信息。感谢您的回复。我正在为客户机提供一个Web服务API,实际上为了让Java客户机的生活更轻松,我们希望提供一个.jar,他们也可以从WSDL生成代码。这在一些Google Web服务中并不少见。