如何在 Windows 上更改 Jenkins 默认文件夹?

Posted

技术标签:

【中文标题】如何在 Windows 上更改 Jenkins 默认文件夹?【英文标题】:How to change Jenkins default folder on Windows? 【发布时间】:2012-09-23 05:43:37 【问题描述】:

如何在 Jenkins 作为 Windows 服务运行的 Windows 上更改 Jenkins 默认文件夹。 由于C: 分区上的空间不足,我想将C:\Users\Coola\.jenkins 文件夹更改为d:\Jenkins(每个构建需要大约10MB 的可用空间)。我不想将Jenkins 重新安装为 Windows 服务。我只想更改现有Jenkins 实例的文件夹。如果缺乏全局解决方案,我只能专注于重新定位 jobs 文件夹。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

我们通过将 .war 放入 Tomcat 进行安装,并且可以通过只需设置环境变量 JENKINS_HOME(重启服务)来设置主页。

【讨论】:

【参考方案2】:

我能够在 http://tech.nitoyon.com/en/blog/2014/02/25/jenkins-home-win/ 之后更改 JENKINS_HOME 变量

将 JUST %JENKINS_HOME% 设置为 Windows 系统范围的环境变量没有任何效果!

【讨论】:

【参考方案3】:

显然,克的答案有效,但不是首选。在 Windows 中,软件和数据/配置文件应该位于不同的位置。这对于 Unix 人来说应该是众所周知的,它基本上就像拥有一个主目录。但是,无论如何,关于 JENKINS_HOME 的措辞都被破坏了,因为尽管帮助文本中有说明,但设置环境变量并没有帮助。

我使用了这里描述的过程:http://tech.nitoyon.com/en/blog/2014/02/25/jenkins-home-win/

基本上:

    停止 Jenkins 服务 在 Jenkins 安装目录中的 jenkins.xml 中编辑条目 <env name="JENKINS_HOME" value="%BASE%"/>。这将类似于C:\Program Files (x86)\Jenkins。在您的情况下,value 必须设置为 d:\Jenkins

    将文件从安装目录移动到新的目的地d:\Jenkins,除了(其中一些可能在全新安装中不存在)

    jre 文件夹 jenkins.err.log jenkins.exe jenkins.exe.config jenkins.out.log jenkins.war jenkins.war.bak jenkins.war.tmp jenkins.wrapper.log

    jenkins.xml

      再次重启服务。

【讨论】:

这对我有用。我还意识到我不需要移动“war”文件夹,因为它在 C:\Program Files (x86)\Jenkins 中重新生成。【参考方案4】:

这是对我有用的答案:Jenkins: How to change JENKINS_HOME on Windows

【讨论】:

ty @Carlos!这对我也有帮助。转到页面的提示; localhost:8080/systemInfo 显示所有变量也非常有帮助。【参考方案5】:

当您阅读Administering Jenkins 时,您可以阅读如何修改 JENKINS_HOME 环境变量的所有选项。

在this website 上,您可以阅读如何配置 Tomcat 容器以覆盖 JENKINS_HOME 环境变量,他们建议创建文件 $CATALINA_BASE/conf/localhost/jenkins.xml,其内容如下:

<Context docBase="../jenkins.war">
    <Environment name="JENKINS_HOME" type="java.lang.String" value="/data/jenkins" override="true"/>
</Context>

【讨论】:

【参考方案6】:

除了grams answer之外,最重要的部分是创建一个名为JENKINS_HOME 的环境变量,其值为“D:\Jenkins”。没有它,在启动 Jenkins 时,它会再次在您的用户主文件夹中创建 .jenkins 文件夹。

【讨论】:

可能没有必要。 AFAIK 似乎本机 Windows 安装程序不创建(或需要) JENKINS_HOME 环境变量。查看issue #JENKINS-13530 但我想无论如何检查 JENKINS_HOME 会更安全。 您不需要 Windows 安装程序即可将 Jenkins 安装为服务。您也可以简单地运行 WAR,然后从菜单中选择它。在这种情况下,你的权利,没有必要,因为 Jenkins 创建了一个 jenkins.xml 文件,它将当前目录设置为 JENKINS_HOME。【参考方案7】: 停止 Jenkins 服务 将C:\Users\Coola\.jenkins 文件夹移动到d:\Jenkins 使用 regedit,将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Jenkins\ImagePath 更改为 "d:\Jenkins\jenkins.exe" 启动服务

【讨论】:

答案有帮助。此外,我不得不清除所有使用 tfs 插件来获取源代码的工作的工作区。这因“无法确定工作区”错误而失败。 我还必须向 Windows 防火墙添加一个新的入站规则,只需将 c:\Program Files (x86)\Jenkins\jre\bin\java.exe 的现有规则复制到 java.exe在新文件夹中 涉及编辑 jenkins.xml 的排名较低的答案允许在代码和数据之间进行更清晰的划分。 我的 Jenkins 版本(从 .msi 安装)没有创建基于用户的“.jenkins”文件夹。所以,我不得不采用不同的答案 - 必须移动一堆文件并且必须更改 jenkins.xml 的复杂答案

以上是关于如何在 Windows 上更改 Jenkins 默认文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jenkins 上更改节点版本?

如何在 Windows 上卸载 Jenkins?

在 Windows 上使用 npm install 时,Jenkins 脚本过早退出

如何在没有远程桌面连接的 jenkins windows slave 上运行 GUI 测试?

在 Windows 上使用 Jenkins 运行 Selenium 测试期间,如何在未实际登录机器时捕获屏幕截图?

如何在 Windows 中使用命令提示符在不同的端口而不是 8080 上启动 jenkins?