如何更改工作区并在Jenkins上构建记录根目录?

时间:2016-01-18 12:05:09

标签: jenkins workspace

我想要Jenkins'要写入驱动器的数据" E:"因为这是服务器上的大型驱动器。 Jenkins本身安装在" C:"。

我该怎么做?

我看到的默认配置是:

  

工作区根目录: $ {ITEM_ROOTDIR} /工作区
  构建记录根目录: $ {ITEM_ROOTDIR} / builds

以下更改是否有助于我实现我的需求?

  

工作区根目录: E:/ Jenkins / workspace
  构建记录根目录: E:/ Jenkins / builds / $ {ITEM_FULL_NAME}

此外," $ {ITEM_FULL_NAME}"意思?

8 个答案:

答案 0 :(得分:33)

我明白了。 为了将Jenkins数据保存在其他驱动器上,您需要执行以下操作:

工作区根目录: E:\ Jenkins \ $ {ITEM_FULL_NAME} \ workspace
构建记录根目录: E:\ Jenkins \ $ {ITEM_FULL_NAME} \ builds

Change Directory

答案 1 :(得分:21)

编辑:在其他评论中,“高级...”按钮似乎已在更新版本的Jenkins中删除。如果您的版本没有,请参阅knorx's answer

我遇到了同样的问题,即使在找到this old pull request后,我仍然无法在系统级别找到指定工作区根目录或构建记录根目录的位置,而不是为每个作业指定自定义工作区。 / p>

设置这些:

  1. 导航至Jenkins - > Manage Jenkins - > Configure System
  2. Home directory下方的顶部,点击Advanced...按钮: advanced button under Home directory
  3. 现在出现工作区根目录和构建记录根目录的字段: additional directory options
  4. 如果单击每个选项左侧的帮助气泡,则显示的信息非常有用。特别是(来自Workspace Root Directory帮助):
      

    此值可能包含以下变量:

         
        
    • ${JENKINS_HOME} - Jenkins主目录的绝对路径
    •   
    • ${ITEM_ROOTDIR} - Jenkins存储给定作业的配置和相关元数据的目录的绝对路径
    •   
    • ${ITEM_FULL_NAME} - 给定作业的全名,可以是斜线分隔的,例如文件夹foo
    • 中作业栏的foo / bar   
         


    该值通常应包括${ITEM_ROOTDIR}${ITEM_FULL_NAME},否则不同的作业将最终共享同一个工作区。

答案 2 :(得分:12)

您可以在默认目录的config.xml文件上修改路径

<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>D:/Workspace/${ITEM_FULL_NAME}</workspaceDir>
<buildsDir>D:/Logs/${ITEM_ROOTDIR}/Build</buildsDir>

答案 3 :(得分:8)

您需要的变量在jenkins Wiki中进行了解释:https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties

默认变量ITEM_ROOTDIR指向jenkins安装中的目录。正如您已经发现的那样,您需要:

  • 工作区根目录: E:/ myJenkinsRootFolderOnE / $ {ITEM_FULL_NAME} / workspace
  • 构建记录根目录:E:/ myJenkinsRootFolderOnE / $ {ITEM_FULL_NAME} / builds

您现在需要通过config.xml实现此目的。引用上面链接的Wiki页面:

  

这曾经是一个UI设置,但在2.119中已删除,因为它没有   支持现有构建记录的迁移,并可能导致   与构建相关的错误,直到重新启动。

答案 4 :(得分:1)

我建议编辑/ etc / default / jenkins

vi /etc/default/jenkins

并将$ JENKINS_HOME变量(第23行附近)更改为

JENKINS_HOME=/home/jenkins

然后像往常一样重新启动Jenkins

/etc/init.d/jenkins start

干杯!

答案 5 :(得分:0)

您也可以在JENKINS_HOME目录中编辑config.xml文件。 使用c32hedge的响应作为参考,并将工作区位置设置为标签之间您想要的任何位置

答案 6 :(得分:0)

默认情况下,Jenkins将所有数据存储在文件系统上的此目录中。

有几种更改Jenkins主目录的方法:

  • 在Jenkins配置文件中编辑JENKINS_HOME变量(例如,在Red Hat Linux上为/etc/sysconfig/jenkins)。
  • 使用Web容器的管理工具来设置JENKINS_HOME环境变量。
  • 在启动Web容器之前或直接从WAR文件启动Jenkins之前,设置环境变量JENKINS_HOME
  • 在启动Web容器或直接从WAR文件启动Jenkins时,设置JENKINS_HOME Java系统属性。
  • 在jenkins.war中修改web.xml(或其在Web容器中的展开图像)。不建议这样做。 Jenkins运行时无法更改此值。 此处显示的内容可帮助您确保配置生效。

答案 7 :(得分:0)

如果您进入“主页”下的“配置”,则会出现有关如何操作的“帮助”说明:

主目录/ var / lib / jenkins功能帮助:主目录

默认情况下,Jenkins将所有数据存储在文件系统上的此目录中。

有几种更改Jenkins主目录的方法:

Edit the JENKINS_HOME variable in your Jenkins configuration file (e.g. /etc/sysconfig/jenkins on Red Hat Linux).
Use your web container's admin tool to set the JENKINS_HOME environment variable.
Set the environment variable JENKINS_HOME before launching your web container, or before launching Jenkins directly from the WAR file.
Set the JENKINS_HOME Java system property when launching your web container, or when launching Jenkins directly from the WAR file.
Modify web.xml in jenkins.war (or its expanded image in your web container). This is not recommended. 

运行Jenkins时无法更改此值。 此处显示的内容可帮助您确保配置生效。