为什么Jenkins在从jar或服务启动时使用不同的临时文件夹?

时间:2017-01-25 13:01:07

标签: jenkins getgauge

我一直试图从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页面只是拒绝加载。 我该怎么办?

1 个答案:

答案 0 :(得分:2)

Windows中的Local System帐户使用C:\Windows\System32\Config\systemprofile中的个人资料。在temp下运行流程时,Local System等文件夹会从此位置引用。有关详细信息,请参阅this answer

在您的方案中,您有以下选项:

  • 在专用帐户下运行Jenkins工作,并为您的代理配置为该帐户安装gaugeplugins
  • gauge --install-all添加为作业中的任务。这将确保安装项目所需的所有插件。