我有四个maven项目:
需要打包服务war以包含客户端api jar和javadocs(以便每个版本的服务都使用捆绑的客户端jar和Web文档进行分发)。 Web界面之战将需要ui jar和所有依赖项(webstart / applet部署)。
所以我需要一个完成所有包装的第五个项目。如何使用ant或脚本执行此操作对我来说非常清楚,但不是在maven中。
我尝试了以下内容:
这在maven中难以做到,我应该放弃吗?或者我看错了,在这种情况下,我应该怎么看?
谢谢!
经过进一步思考,这是一个部分答案:
答案 0 :(得分:1)
我在你的描述中看到的第一件事就是混合东西。打包客户端api(包阶段)没问题。但是现在你想创建一个包含JavaDocs的client-api.jar?这有点奇怪。为什么不创建两个工件(client-api-1.0.jar和client-api-1.0-javadoc.tar.gz)?这两个工件之间的关系是版本号。这可以通过查看Maven Assembly Plugin FAQ
来解决你提到的第二件事是“web界面”,这也可以通过程序集插件实现(深入研究文档)。也许你可以发布你的pom,以便我们能够以更详细的方式提供帮助。
顺便说一句:你不需要蚂蚁。 Maven可以解决这个问题。答案 1 :(得分:0)
需要打包服务war以包含客户端api jar和javadocs(以便每个版本的服务都使用捆绑的客户端jar和Web文档进行分发)
您需要创建客户端项目的源jar,并将此源jar包含在war模块中javadoc插件的配置中。 Aggregating Javadocs from Dependency Sources中解释了各个部分的步骤和配置。
Web界面之战将需要ui jar和所有依赖项(webstart / applet部署)。
对于需要下载的小程序,请在pre-package
期间使用dependency:copy
将其复制到您的网络应用中的“正确”位置。请参阅usage页面。对于webstart应用程序,请查看Add JNLPs apps to an existing WAR。
所以我需要一个完成所有包装的第五个项目(...),因为我需要每个子项目中的不同部分我不明白如何使用程序集来完成。
使用专用模块绝对是创建程序集的方法,包括由其他模块甚至其他模块的程序集生成的工件。
我不是百分百肯定,但创建一个assembly of assemblies可能就是我在这里要做的。基本上,这意味着设置Maven以创建要在最终包中组装的每个模块的程序集,可能使用预定义的程序集描述符bin
或修改后的版本(以捆绑jar ,或战争,javadoc等)。然后在专用模块中assemble assemblies via assembly dependencies(要解压缩它们,过滤您想要或不想要的内容,重新打包过滤后的结果)。这需要在custom assembly descriptor上花一些时间,但这绝对是可能的。但是很难更准确。