1

我正在尝试使用 Jenkins 构建我的项目以将工件部署到连接。我在我的 macOSX 上有一个 Jenkins 设置。以下是错误,我得到:

解析 POM

[maventest] $ /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Xmx512m -XX:MaxPermSize=128m -Dfile.encoding=UTF-8 -cp /Users/Shared/Jenkins /Home/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.3.jar:/usr/share/maven/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /usr/share/maven /Users/Shared/Jenkins/Home/war/WEB-INF/lib/remoting-2.26.jar /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven3 -interceptor-1.3.jar 59985

<===[JENKINS REMOTING CAPACITY]===>频道已启动

频道已停止

AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586) at hudson.model.Run.execute(Run.java:1593) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:491) at hudson.model.ResourceController.execute (ResourceController.java:88) at hudson.model.Executor.run(Executor.java:247) 原因:java.lang.InternalError:无法连接到窗口服务器 - 权限不足。在 java.lang.ClassLoader$NativeLibrary.load(Native Method) 在 java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827) 在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724) 在 java.lang.Runtime .loadLibrary0(Runtime.java:823) 在 java.lang.System.loadLibrary(System.java:1045) 在 sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50) 在 java.security.AccessController。

我已经尝试了以下解决方案,但没有奏效:http: //jenkins-ci.361315.n4.nabble.com/JIRA-Created-HUDSON-5584-java-io-IOException-Remote-call-on-Channel -to-Maven-td1475049.html

我有的配置:

MAVEN_OPTS:-Xmx1024m -XX:MaxPermSize=128m -Dfile.encoding=UTF-8 -Djava.awt.headless=true

ps -ef 的输出 | grep java:/usr/bin/java -Djava.awt.headless=true -jar /Applications/Jenkins/jenkins.war

构建命令:clean deploy -DaltDeploymentRepository=central::default::http://<user>:<pwd>@<host>:<port>/nexus/content/groups/public/

4

2 回答 2

2

我使用的解决方案是应用 Java 7。您要做的是将 1.7 添加到 Jenkins。按照这些步骤,我能够成功构建我的项目:

  1. 转到 Oracle Java 页面并下载适用于 Mac 的 1.7_51 jdk。
  2. 打开 dmg 并运行可执行文件。
  3. 在 Mac 上,这会将 JDK 安装到 /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/
  4. 在 Jenkins 中,转到“管理 Jenkins”>“配置系统”
  5. 在 JDK 标题下,单击 JDK Installations 按钮
  6. 在名称下键入“JDK 1.7.0_51”
  7. 对于 JAVA_HOME 类型“/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/”
  8. 选择保存
  9. 转到您的项目并选择配置
  10. 您现在应该在页面顶部附近有一个 JDK 下拉菜单。
  11. 选择您刚刚在“管理 Jenkins”下配置的 JDK
  12. 运行构建

执行此操作后,我的构建成功运行,没有“无法连接到窗口服务器 - 权限不足错误”。

于 2014-03-18T04:40:10.043 回答
0

这条线看起来很奇怪:

hudson.model.Executor.run(Executor.java:247) Caused by: java.lang.InternalError:
Can't connect to window server - not enough permissions. at java.lang.ClassLoader
$NativeLibrary.load(Native Method) 

我会从一个更简单的项目开始,然后从那一点开始增加复杂性,因为只是测试以确保您的基本假设是正确的。

您可能需要设置 JVM 属性: -Djava.awt.headless=true . 通过这样做,您将禁用(很可能是不必要的)试图加载的 gui 库。

于 2013-07-12T17:00:02.987 回答