目前,我的部署工作流涉及手动(即在脚本中)进入每个maven项目目录并运行mvn install
。问题出在本地资源上,即我编写的其他内部代码,我正积极开发/维护,我不知道如何告诉maven在缺少这些资源时自行构建这些资源。理想情况下,每次我需要重新打包顶级应用程序时,它将重建任何至少有一个文件被修改的库。
答案 0 :(得分:3)
如果您的(多模块)项目使用其他内部资源,您实际需要的可能不是一直重建所有这些资源,而是使用本地maven存储库。它可以是使用ssh或HTTP传输部署资源的简单存储库(请参阅deploy plugin),也可以是真实工件管理器,例如Archiva,Artifactory或Nexus
存储库管理器不仅可以保存已部署的工件,还可以在完成相应的发布后清理过时的快照,并充当其他存储库的本地缓存,包括中心。
答案 1 :(得分:1)
拥有包含所有模块的父POM。构建父级时,也将构建属于父POM文件的所有模块。
只要您的孩子有父母,就可以从父母那里继承很多东西。
答案 2 :(得分:0)
考虑设置Jenkins以自动构建代码。 Jenkins有一个有用的功能,它将重建依赖于新构建的工件的项目。只需提交代码即可自动触发构建。
如果您正在使用多台开发计算机(或在团队中工作),请将Jenkins与Nexus(其他选项:Artifactory,Archiva)结合使用,为共享工件提供公共存储。这些工具旨在支持Maven构建。