为啥即使没有 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 构建?的主要内容,如果未能解决你的问题,请参考以下文章