码迷,mamicode.com
首页 > 其他好文 > 详细

Jenkins多模块编译技巧

时间:2019-01-25 17:43:22      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:log   http   other   依赖关系   png   不同   关系   人工   content   

考虑下面的场景:

一个Git repository中有6个Java项目A,B,C,D,E,F.

A是最底层模块。B依赖A, C,D,E,F又同时依赖A和B。 这时候项目可以分成三层关系。

 

需求:

1.Jenkins只编译文件有改动的项目

默认情况系,只要一个Git repository中有代码改动,6个项目就全部会被编译,这显然是非常浪费资源的.

安装Pathignore plugin后,在每个Jenkins的项目中如下图设置:

技术分享图片

** 代表sdk/common目录下的所有子目录的文件

 

2.手动指定编译顺序

由于我们采用的是maven项目,Jenkins可以根据pom.xml知道项目间的依赖关系,因此无需设置就可以自动一层层编译。

但是Jenkins会并行编译不同的项目,为了节省服务器的资源,可以通过手动设置来控制。

可以在Build other projects里面 选择下一步要编译的项目。

 

3.还可以指定Advanced Project Options里面的两个选项:

Block build when upstream project is building

Block build when downstream project is building

 

注意,2和3只是控制了编译顺序,但是1仍然会起到作用。如果A的代码提交出发了自动编译,然后第2步指定了之后要编译B, 而规则1检查B是否有代码变动,如果B代码没有改动,则编译终止。 这是非常合理的,节省了很多资源。

 

注意,仅仅适用于Java等基于虚拟机的语言,如果是C++,最好项目全部重新编译,除非你使用的是类似COM的技术搭建产品架构,并且interface没有改变。

 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

Jenkins多模块编译技巧

标签:log   http   other   依赖关系   png   不同   关系   人工   content   

原文地址:https://www.cnblogs.com/skiwnywh/p/10320458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!