zoukankan      html  css  js  c++  java
  • jenkins构建触发器之Build whenever a snapshot dependency is built

    整合项目上线时,运维大哥创建好Jenkins任务后,发现在构建BOSS开工、智能出行、整合这三个项目其中一个Jenkins任务时,会同时构建其他的Jenkins任务。

    整合项目是新项目。之前发版时构建BOSS开工、智能出行的任务时都很正常。

    整合项目是将BOSS开工、智能出行两个系统所具有的公共的功能整合到一起,减轻运营工作量和技术维护成本。这样,系统间的逻辑结构变成了BOSS开工、智能出行会依赖整合系统的一部分接口,整合系统会依赖BOSS开工、智能出行的一部分接口。由于rpc用的是dubbo,所以,项目间会相互依赖彼此的接口契约module。

    如下图,三个构建任务test_omsbase-rpcapi-module、test_bosskg-interface-module、test_car-pub-module-interface所构建的是三个项目的接口契约module,通过构建只是maven install到Jenkins服务器的本地仓库,不需要上传到应用服务器。

    如下是任务构建时出现的“乱象”:

     

    解决办法:

    在Jenkins任务配置的“构建触发器”里,去掉勾选Build whenever a  snapshot  dependency is built。

    原来,BOSS开工、智能出行、整合这三个项目的artifact的版本都是snapshot(IDEA新建工程时,pom文件默认指定的项目版本是1.0.1-SNAPSHOT),这个选项的意思是:只要快照依赖任务被构建,就构建当前任务。

    就是说,[A]项目依赖[B]项目的一个快照版本的module[M],如果[A]和[M]都有Jenkins任务时,那么,当[M]任务构建时,就会触发[A]任务的构建。

    所以,就不难理解上文的“构建乱象”了。

    如果不需要这样,那解决办法,自然是不启用这一项了。当然,把项目版本变更成release也未尝不可。

    Jenkins几种构建触发器(Build Triggers)解释:

    Build whenever a snapshot dependency is built

    当job依赖的快照版本被build时,执行本job。

    Build after other projects are built

    当本job依赖的job被build时,执行本job

    Build periodically

    隔一段时间build一次,不管版本库代码是否发生变化。

    Poll SCM

    隔一段时间比较一次源代码如果发生变更,那么就build。否则,不进行build。

  • 相关阅读:
    js 运动框架
    js 去掉字符中两边的空格
    js 去掉字符中所有空格
    vue移动端webview视频轻应用
    vue绑定v-modal布尔值到checkbox后异步,部分手机更新不及时问题
    使用原生js的scrollTop,刷新进入页面定位到某一个dom元素
    会议管理项目总结
    ionic1上拉刷新,下拉加载,安卓问题解决
    jquery $(document).ready() 与window.onload的区别
    vue2+express4图片上传
  • 原文地址:https://www.cnblogs.com/buguge/p/12874411.html
Copyright © 2011-2022 走看看