为什么 Jenkins 从 jar 或服务启动时使用不同的临时文件夹?
Why does Jenkins use a different temp folder when launched from jar or from a service?
我一直在尝试从 Jenkins 启动测试应用程序。最初我从 Jar 文件启动 Jenkins,一切正常。
这是控制台输出:
Started by user ABC
Building in workspace C:\MyDir
[xyz] $ cmd /c call C:\Users\usrname\AppData\Local\Temp\hudson2329759222967199349.bat
...
现在,当我将 Jenkins 作为 Windows 服务启动时
Started by user ABC
Building in workspace C:\MyDIr
[xyz] $ cmd /c call C:\WINDOWS\TEMP\hudson4009309858990093371.bat
C:\MyDir>gauge specs
Failed to start gauge API: Plugin 'java' not installed on following locations : [C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\gauge\plugins]
为什么 运行 它来自不同的临时文件夹?
我尝试通过将 AppData\Local\Temp 路径添加到 jenkins.xml
来纠正问题
<executable>java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle
"-Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; default-src 'self' 'unsafe-inline' ; img-src 'self'; style-src 'self' 'unsafe-inline';"
-Djava.io.tmpdir="C:/Users/username/AppData/Local/Temp"
-jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>
如果有帮助:Jenkins 安装在 C:\Users\username.jenkins
Jenkins 页面只是拒绝加载。
我该怎么办?
Windows 中的 Local System
帐户使用其在 C:\Windows\System32\Config\systemprofile
中的配置文件。 temp
当 运行 Local System
下的进程时,从该位置引用等文件夹。有关详细信息,请参阅 this answer。
在您的场景中,您有以下选项:
- 运行 Jenkins 在专用帐户下工作,并为您的代理配置
gauge
和 plugins
为该帐户安装。
- 将
gauge --install-all
添加为工作中的任务。这将确保安装项目所需的所有插件。
我一直在尝试从 Jenkins 启动测试应用程序。最初我从 Jar 文件启动 Jenkins,一切正常。
这是控制台输出:
Started by user ABC
Building in workspace C:\MyDir
[xyz] $ cmd /c call C:\Users\usrname\AppData\Local\Temp\hudson2329759222967199349.bat
...
现在,当我将 Jenkins 作为 Windows 服务启动时
Started by user ABC
Building in workspace C:\MyDIr
[xyz] $ cmd /c call C:\WINDOWS\TEMP\hudson4009309858990093371.bat
C:\MyDir>gauge specs
Failed to start gauge API: Plugin 'java' not installed on following locations : [C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\gauge\plugins]
为什么 运行 它来自不同的临时文件夹? 我尝试通过将 AppData\Local\Temp 路径添加到 jenkins.xml
来纠正问题<executable>java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle
"-Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; default-src 'self' 'unsafe-inline' ; img-src 'self'; style-src 'self' 'unsafe-inline';"
-Djava.io.tmpdir="C:/Users/username/AppData/Local/Temp"
-jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>
如果有帮助:Jenkins 安装在 C:\Users\username.jenkins Jenkins 页面只是拒绝加载。 我该怎么办?
Windows 中的 Local System
帐户使用其在 C:\Windows\System32\Config\systemprofile
中的配置文件。 temp
当 运行 Local System
下的进程时,从该位置引用等文件夹。有关详细信息,请参阅 this answer。
在您的场景中,您有以下选项:
- 运行 Jenkins 在专用帐户下工作,并为您的代理配置
gauge
和plugins
为该帐户安装。 - 将
gauge --install-all
添加为工作中的任务。这将确保安装项目所需的所有插件。