我正在将Jenkins从Windows迁移到Debian。我有一个在Windows机器上运行良好的JobDSL,但在Debian上使用它,它只构建一些XML模块并且无法解释大多数其他模块,即它们显示为未配置的字段/它们的节点在 config中不存在.XML 。 DSL是从它自己的Jenkins作业中调用的,它仅检出代码然后从文件中调用DSL。如果出现问题,即如果DSL找不到它应该配置的插件,则构建将失败或变得不稳定,具体取决于错误是什么。
然而,创建作业完成为'SUCCESS',即使它的DSL被翻译成错误的 config.xml 。这样,我无法弄清楚出了什么问题。
在两个系统上,Jenkins为1.596.2,DSL Plugin为1.32(Win)/1.34(Deb)。我小心翼翼地安装了DSL所需的所有Jenkins插件。
编辑:我通过the backports将Groovy更新为2.2.2,但没有改变DSL效果。
有谁知道可能导致这种情况的原因?
答案 0 :(得分:1)
如果您的问题是由旧的groovy版本引起的,您可以通过debian backports安装新版本:( this answer中也有描述)
private boolean intercept(MotionEvent ev, View view, float boundingBoxTolerance){
if (boundingBoxTolerance < 1.0f) {
boundingBoxTolerance = 1.0f;
}
try {
if (ev != null && view != null) {
int coords[] = new int[2];
view.getLocationOnScreen(coords);
if (ev.getRawX() >= ((float)coords[0]) / boundingBoxTolerance && ev.getRawX() <= coords[0] + ((float) view.getWidth()) * boundingBoxTolerance) {
if(ev.getRawY() >= ((float)coords[1]) / boundingBoxTolerance && ev.getRawY() <= coords[1] + ((float) view.getHeight()) * boundingBoxTolerance)
return true;
}
}
}
catch (Exception e) {}
return false;
}
deb http://http.debian.net/debian wheezy-backports main
(或squeeze
之类的其他分发,您可能只看其他行)
/etc/apt/sources.list
以root身份(或通过apt-get update
)sudo
(如果需要,再次替换apt-get install -t wheezy-backports groovy
)使用wheezy
进行更新的优势是
然后它将在您的主目录中创建一个.gvm /文件夹,并且整齐 安装所有候选人。
答案 1 :(得分:1)
在开始为我的帖子提取一个自包含的代码示例时,我发现效果似乎是由archiveXunit
模块引起的。当我在publishers
部分中省略它时,一切都按预期工作。包括它会导致奇怪的干扰,例如:到SCM和Log Rotation模块。
正如旁注,我在此期间将Debian升级为Jessie,因为Wheezy不支持groovy2
包(版本2.x.x),并且安装它需要一些不必要的体操。我甚至不需要在Jessie上使用backports。 (我想知道快速发展的Jenkins和保守派Debian的组合是否是一个不错的选择,但我想时间会证明。)
所以,是的......对我来说似乎是一个插件问题。我还写信给插件的邮件列表here。我会继续调查这个。
更新:
这似乎是一个插件问题,但不是来自JobDSL,而是来自 xUnit和JUnit插件之间的依赖关系。我想创建一个特别纤薄的设置并停用JUnit插件,发现我的系统上没有Java构建或测试......好吧:激活了xUnit,但没有JUnit,JobDSL以上述方式失败。激活JUnit会使这个问题消失。 Here是我对Jenkins JIRA中的小xUnit错误的描述。