为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?

Posted

技术标签:

【中文标题】为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?【英文标题】:Why is Jenkins triggering IVY build even though no SVN change?为什么即使没有 SVN 更改,Jenkins 也会触发 IVY 构建? 【发布时间】:2016-12-10 06:51:54 【问题描述】:

我有一个 Jenkins 工作,它每五分钟轮询一次 SVN 以进行更改。我看到了奇怪的行为,即使日志清楚地表明自上次轮询以来没有 SCM 更改。 Jenkins 解析各个 ivy.xml 文件并调用每个 build.xml 文件。然后,构建文件编译已在 Jenkins 工作区中签出的代码,然后将 1.0-snapshot jar artefact 发布到 IVY。这基本上是向 IVY 发布相同的快照。试图理解为什么 Jenkins 会继续解析 ivy 文件,即使没有检测到 SCM 更改。

作业的日志输出如下所示。

   Started by user anonymous
   [EnvInject] - Loading node environment variables.
   Building in workspace C:\Software\Jenkins\workspace\Snapshots
   Updating svn://*****/Project1 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project2 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project3 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project4 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project5 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project6 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project7 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project8 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   Updating svn://*****/Project9 at revision '2016-08-04T09:04:38.318 +0100'
   At revision 3570
   no change for svn://*****/Project1 since the previous build
   no change for svn://*****/Project2 since the previous build
   no change for svn://*****/Project3 since the previous build
   no change for svn://*****/Project4 since the previous build
   no change for svn://*****/Project5 since the previous build
   no change for svn://*****/Project6 since the previous build
   no change for svn://*****/Project7 since the previous build
   no change for svn://*****/Project8 since the previous build
   no change for svn://*****/Project9 since the previous build
   Parsing Ivy Descriptor Files
   Triggering com.****:ivy1
   Triggering com.****:ivy2
   Triggering .....

   Finished: SUCCESS

欢迎任何指针。

【问题讨论】:

请检查您的作业的构建触发器配置。你应该使用“poll scm”设置 我的构建触发器是“poll scm”,但即使自上次构建运行以来没有检测到 SVN 更改,它仍然会触发。 因此您应该检查 SVN 结帐配置,因为那里似乎有问题。 scm 部分似乎很好,我对 IVY 触发器插件如何从结帐中找到的文件中推断出哪些 ivy.xml 文件应该被触发感到更加困惑。构建日志文件非常稀疏,只包含一个随机列表。我原以为它会检测到 src 代码更改,然后使用与 src 文件夹的根目录位于同一目录中的 ivy.xml 文件并将其用作起点。 【参考方案1】:

由用户“匿名”发起 您能否确认有安全设置,并不是每个人都能够手动触发构建。 “匿名”表示有人手动触发构建。

【讨论】:

为什么手动构建与 scm 轮询触发器有任何不同。我希望手动触发的构建也检测到没有 SCM 更改,因此不需要继续解析 ivy.xml 文件? 手动触发的构建未检查 SVM 更改。 在我看来,Jenkins IVY 插件正在触发随机的常春藤文件。我对文件进行了测试更改并将其检入到 SVN 中。 Jenkins 日志检测到更改,但随后继续为其他模块触发一组 ivy 构建。它从未真正构建链接到签入文件的模块。

以上是关于为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使禁用缓存,服务器也会忽略代码文件中的更改?

为啥jenkins设置了定时构建但没触发?

为啥即使没有错误,表单也会出现错误消息?

为啥即使元素存在,硒也会抛出未找到元素的错误? [复制]

即使我修改了文件,Webpack 实时重新加载也会说“没有改变”。为啥?

为啥我的 WASAPI 监听器即使在没有播放的时候也会触发?