java - 在 Jenkins 中通过 x64 运行 PowerShell

标签 java windows powershell jenkins jenkins-plugins

我是 Jenkins 的新手,但真的很想看看 Jenkins 如何在我们的构建管道中帮助我。作为我们要求的一部分,我们需要能够通过 x64 实例调用 PowerShell 脚本。我在 Windows Server 2012 R2 上安装了 Jenkins,开箱即用,PowerShell 插件运行良好,但通过 x86 引擎。据我了解,默认情况下,Jenkins 使用 Java 的 x86 版本。没问题。我已经安装了 Java 的 x64 版本,将 Jenkins.xml 修改为如下所示:

<executable>C:\Program Files\Java\jre1.8.0_131\bin\java.exe</executable>

...并重新启动 Jenkins 服务。服务重新启动正常,但 Web 界面没有响应。我尝试重新启动整个服务器,将 JAVA_HOME 系统环境变量设置为 C:\Program Files\Java\jre1.8.0_131 并卸载了 x86 版本的 Java,但无济于事。

根据我一直在阅读的内容,这适用于大多数人,但不适合我。我还查看了 jenkins.err.log 和 jenkins.out.log 文件,看看是否有任何迹象表明我没有从 Web 界面收到任何响应,而且它们中没有任何内容。

最佳答案

亚当,我认为你的正确除了条目需要引号。这是我在面向 PowerShell 的 Jenkins 中所拥有的,并且所有工作都按预期进行。

<executable>"C:\Program Files\Java\jre1.8.0_131\bin\java.exe"</executable>

64 位 Java 和 64 位 PowerShell,根据需要。

更新:

这是我经过清理但准确的完整 jenkins.xml。我从来没有必要设置 JAVA_HOME,也许有什么东西正在接受它并变得困惑。除了将可执行文件更改为外部 JVM(64 位)和添加一些 --https* 参数外,我没有对配置做任何特别的事情,就像我说的那样,它已经愉快地工作了一段时间。

 <service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <!--
    if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
    The following value assumes that you have java in your PATH.
  -->
  <!--<executable>%BASE%\jre\bin\java</executable>-->
  <executable>"C:\Program Files\Java\jre1.8.0_131\bin\java.exe"</executable>
  <arguments>-Xrs -Xms1G -Xmx1G -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --webroot="%BASE%\war" --ajp13Port=-1 --httpPort=-1 --httpsPort=8443 --httpsListenAddress=192.0.0.192 --httpsKeyStore=C:\MyJavaKeyStore.jks --httpsKeyStorePassword=PasswordToSaidJKS</arguments>
  <!--
    interactive flag causes the empty black Java window to be displayed.
    I'm still debugging this.
  <interactive />
  -->
  <logmode>rotate</logmode>

  <onfailure action="restart" />
</service>

您可以尝试取消注释 <interactive />节点以查看可能抛出但可能未记录的错误。

关于java - 在 Jenkins 中通过 x64 运行 PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035476/

相关文章:

java - 使用java对数字进行排序

java - Angular 调用 java web API 中 http.post 的参数传递

java - 是否可以在 Windows XP 中开发微秒级时间精度的实时数据采集系统?

windows - 如何在不执行其中的参数的情况下查看 Windows 环境变量?

powershell - 带有 ScriptBlock 的组对象的意外行为

java - 如何一次将服务器运行时添加到 Eclipse 中的多个现有项目(使用 Oracle 工具的 Kepler)

java - Java ArrayList 类中的数据竞争

windows - 在 Windows (Cygwin) 上安装 Hive (Hadoop)

powershell - ValidateScript参数验证

powershell - 通过 Out-GridView 管道后获取原始对象