Jenkins如何构建maven多模块项目?

我有一个maven 的springboot项目
这个项目有多模块,一个parent pom,一个api模块,然后其他模块都依赖于api模块
配置jenkins
由于这个maven多模块项目上传在同一个git repository中
所以他们统一作为一个project
project下面其实也是分modules了
但是每个module只可以编译
不可以设置Post Steps(我的步骤是编译生成jar包,然后在post steps里将jar包移到linux下某个目录下,然后运行这个jar包)
只可以在project下面设置
这样的话,譬如我有一个order模块要升级更新,我无法单独将这个order.jar包移到linux下order目录下,然后运行这个jar包

我的方案是:
1 有多少个单独运行的模块,就建立多少个jenkins project,但是在Goals and options中只编译某个模块,然后在Post Steps里的脚本也只处理那个模块
我认为这样的问题是,每个project都会有一份这个project的源码,这样比较浪费

2 每个模块都建立一个git repository,这样在jenkins里,每个project只管理一个模块的git,但是这样的话,如何解决每个模块依赖parent pom以及api模块的问题?

阅读 15.7k
4 个回答
新手上路,请多包涵

楼主的问题解决了吗,我也是构建的maven项目,使用jenkins里的模块单独构建,都会报错,看了下执行的maven指令,加了参数-N -B -f,好像是没有解析maven模块间的依赖关系,楼主你使用jenkins可以成功使用模块单独构建吗?

自己的依赖,或者弄一个私服,或者install到跑Jenkins的机器上
个人观点maven多模块更适合库,不适合服务

把依赖的module作为一个lib库jar包,放入你的新模块。在需要运行的时候maven 会寻找manifest.mf中claaspath下的依赖包,也可以使用Nexus管理,也可以用微服务的方式。

在新版本的Jenkins中
新建freestyleproject项目
比如这样配置就可以解决你的问题
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题