jenkins - Gradle项目未在 Jenkins 下正确命名文件

标签 jenkins gradle jenkins-plugins

我有许多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}

内联帮助:

Specify where Jenkins would store job workspaces on the master node. (It has no effect on builds run on slaves.) This value can include the following variables.

  • ${JENKINS_HOME} — Jenkins home directory.
  • ${ITEM_ROOTDIR} — Root directory of a job for which the default workspace is allocated.
  • ${ITEM_FULL_NAME} — '/'-separated job name, like "foo/bar".

Changing this value allows you to put workspaces on SSD, SCSI, or even ram disks. Default value is ${ITEM_ROOTDIR}/workspace.


.../jenkins/config.xml
...
<workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
...

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

相关文章:

Jenkins X 错误 : secrets "jenkins" not found

gradle - 依赖项冲突的Gradle Shadow Jar

Jenkins 按标签锁定

javascript - 如何使用 Jenkins 在 CI 中的 Cypress 仪表板中填充作者、分支、提交、消息?

xamarin - 在 Jenkins 上运行 NUnit 测试的问题

java - 使用 Artifactory 插件从 Jenkins 发布项目文件 "Include Patterns"

macos - osx上的Gradle Docker插件中断管道

Android:在 TeamCity 服务器上运行仪器化测试

jenkins - 从另一个多分支管道触发多分支管道作业

unit-testing - 在 Jenkins 中使用 xUnit 插件 boost 单元测试不起作用