我有许多Gradle构建都可以在命令行,buildship等平台上很好地工作。

但是现在我将它们移植到Jenkins系统。它产生了一些非常奇怪的结果。我几乎是Jenkins的新手,所以这可能是个简单的答案。到目前为止,我还没有找到它。

我正在使用Gradle Plugin for Jenkins, v.1.24在Jenkins中配置我的构建。但是,Jenkins(至少按照我的配置)将其构建结构组织为{jenkins root}/data/jobs/{project_name}/workspace。当代码从源代码管理中 check out 时,它将存储在该目录中,而不是在名为{project_name}的目录中。

Gradle似乎假设运行它的目录为项目命名,而当我在Jenkins之外运行时,这种假设是正确的。 Gradle看到的项目的名称是从源代码管理中 checkout 的项目的名称。 Project.name是gradle Project的可获取属性,而不是settable属性。因此,在Jenkins案例中,gradle构建的文件文件名为workspace*而不是{project_name}*。它在发布到的存储库中也称为workspace。我肯定想念一些非常明显的东西,但是对于我的一生,我无法弄清楚它是什么。

有人在努力吗?

更新-问题似乎是设计我的Jenkins实例的人对Gradle一无所知。 Jenkins 并不需要我上面描述的{jenkins root}/data/jobs/{project_name}/workspace布局,但是显然出于某些原因,在某些其他非Gradle上下文中,它被认为是有用的。因此问题就变成了,可以在某种程度上修改Jenkins配置中设置的项目布局-或-可以对Gradle进行修改,以采用不同的项目布局/命名策略。

最佳答案

设置管理Jenkins→配置系统→高级... (位于顶部的右侧)→工作区根目录:${JENKINS_HOME}/workspace/${ITEM_FULLNAME}

内联帮助:


.../jenkins/config.xml

...
<workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
...

关于jenkins - Gradle项目未在 Jenkins 下正确命名文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36899781/

10-11 22:16
查看更多