【发布时间】:2014-10-28 14:25:51
【问题描述】:
我在这里看到了一些这样的问题,但似乎没有一个解决方案/提示将我指向正确的方向。所以我在“/opt/java/6”、“/opt/java/7”和“/opt/java/8”的位置安装了3个JDK。所有这些都在全局 Jenkins 配置中设置。 Jenkins 本身使用 Java 8 运行,这是我通过替代项手动设置的系统默认 JRE(我使用的是 CentOS 7)。我有一堆使用 maven 和设置为 source=1.6 target=1.6 的 maven 编译器插件构建的旧项目。每次我尝试使用 Java 6 JDK 执行构建时,我都会得到 p>
Started by user Antony Princeln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/BitCalculator/lastSuccessful failedjava.nio.file.DirectoryNotEmptyException: /var/lib/jenkins/jobs/BitCalculator/lastSuccessfulat sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242)at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)at java.nio.file.Files.deleteIfExists(Files.java:1165)at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:483)at hudson.Util.createSymlinkJava7(Util.java:1194)at hudson.Util.createSymlink(Util.java:1112)at hudson.model.Run.createSymlink(Run.java:1851)at hudson.model.Run.updateSymlinks(Run.java:1832)at hudson.model.Run.execute(Run.java:1743)at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)at hudson.model.ResourceController.execute(ResourceController.java:89)
@ 987654337@ln builds/lastStableBuild /var/lib/jenkins/jobs/BitCalculator/lastStable failedjava.nio.file.DirectoryNotEmptyException: /var/lib/jenkins/jobs/BitCalculator/lastStableat sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:242)at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)at java.nio.file.Files.deleteIfExists(Files.java:1165)at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:483)at hudson.Util.createSymlinkJava7(Util.java:1194)at hudson.Util.createSymlink(Util.java:1112)at hudson.model.Run.createSymlink(Run.java:1851)at hudson.model.Run.updateSymlinks(Run.java:1833)at hudson.model.Run.execute(Run.java:1743)at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)at hudson.model.ResourceController.execute(ResourceController.java:89)at hudson.model.Executor.run(Executor.java:240)Building in workspace /var/lib/jenkins/workspace/BitCalculator> git rev-parse --is-inside-work-tree # timeout=10Fetching changes from the remote Git repository> git config remote.origin.url /home/git/repositories/java/BitCalculator.git # timeout=10Fetching upstream changes from /home/git/repositories/java/BitCalculator.git> git --version # timeout=10> git fetch --tags --progress /home/git/repositories/java/BitCalculator.git +refs/heads/*:refs/remotes/origin/*> git rev-parse origin/master^{commit} # timeout=10
@ 987654362@> git config core.sparsecheckout # timeout=10> git checkout -f 4f119f7783cc4ff00e5bf9bb27850ae7698d4fe8> git rev-list 4f119f7783cc4ff00e5bf9bb27850ae7698d4fe8 # timeout=10Parsing POMs[BitCalculator] $ /opt/java/6/bin/java -Djava.awt.headless=true -cp /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.5.jar:/usr/share/maven/boot/plexus-classworlds.jar org.jvnet.hudson.maven3.agent.Maven3Main /usr/share/maven /var/lib/jenkins/war/WEB-INF/lib/remoting-2.44.jar /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.5.jar /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.5.jar 56445<===[JENKINS REMOTING CAPACITY]===>channel startedExecuting Maven: -B -f /var/lib/jenkins/workspace/BitCalculator/pom.xml -P sign clean deployjava.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:331)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)at hudson.remoting.UserRequest.perform(UserRequest.java:118)at hudson.remoting.UserRequest.perform(UserRequest.java:48)at hudson.remoting.Request$2.run(Request.java:328)
@ 987654 387@at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)at java.lang.Thread.run(Thread.java:662)Caused by: java.lang.UnsupportedClassVersionError: javax/inject/Provider : Unsupported major.minor version 51.0at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)at java.lang.ClassLoader.defineClass(ClassLoader.java:615)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)at java.net.URLClassLoader.access$000(URLClassLoader.java:58)at java.net.URLClassLoader$1.run(URLClassLoader.java:197)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:86)... 22 morechannel stopped[BitCalculator] $ /bin/sh -xe /tmp/hudson6524656470722686910.sh+ rm 'target/*no_deps*'
@ 987654412@Build step 'Execute shell' marked build as failureERROR: Failed to parse POMshudson.util.IOException2: java.lang.reflect.InvocationTargetExceptionat hudson.maven.Maven3Builder.call(Maven3Builder.java:178)at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)at hudson.remoting.UserRequest.perform(UserRequest.java:118)at hudson.remoting.UserRequest.perform(UserRequest.java:48)at hudson.remoting.Request$2.run(Request.java:328)at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)at java.lang.Thread.run(Thread.java:662)Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)... 10 moreCaused by: java.lang.Exception: java.lang.reflect.InvocationTargetExceptionat org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:181)... 15 more
@ 987654437@at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:331)at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
@98765445@Caused by: java.lang.UnsupportedClassVersionError: javax/inject/Provider : Unsupported major.minor version 51.0at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)at java.lang.ClassLoader.defineClass(ClassLoader.java:615)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)at java.net.URLClassLoader.access$000(URLClassLoader.java:58)at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
@9 87654454@at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:86)... 22 more
@98765462@Sending e-mails to: antony@blazrsoft.comFinished: FAILURE
这表明某处有 Java 7 干扰,但我不确定在哪里。 该代码符合 1.6,并且大多数项目没有依赖项,所以我不确定为什么会发生这种情况。如果我在 Jenkins 之外执行 maven,则项目使用 JDK 6 构建得很好,所以它让我认为 Jenkins 的某个地方存在错误配置,但我不确定在哪里,因为一切似乎都应该是这样。 JDK 的路径在全局配置中正确设置,项目本身设置为使用指定的 JDK。如果它是一个重复的问题或一些愚蠢的东西,我深表歉意,但我几天来一直试图解决这个问题,但没有任何结果。每个人都只是说检查路径并确保没有使用更高版本的 JDK 构建的依赖工件,我确信这不是问题。
$ mvn -versionApache Maven 3.0.5 (Red Hat 3.0.5-16)Maven home: /usr/share/mavenJava version: 1.8.0_20, vendor: Oracle CorporationJava home: /opt/java/8/jreDefault locale: en_US, platform encoding: ANSI_X3.4-1968OS name: "linux", version: "2.6.32-openvz-042stab090.5-amd64", arch: "amd64", family: "unix"
<plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><encoding>UTF-8</encoding><source>1.6</source><target>1.6</target><compilerVersion>1.6</compilerVersion></configuration></plugin>
【问题讨论】:
-
当你在命令行上运行时,你运行的用户是否与运行 Jenkins 的用户相同?如果没有,请从命令行和 Jenkins 控制台输出(在编译开始步骤之前的
echo $PATH)粘贴 $PATH 的输出。 -
显示错误消息的完整输出,而不仅仅是摘录。您使用哪个 Maven 版本以及您使用哪个版本的 maven-compiler-plugin?
-
添加了来自 Jenkins、maven 版本信息和 maven 编译器插件版本的完整错误日志。
-
稍后我会添加成功的用户信息。更新了我的 Sonatype Nexus 存储库并删除了我的所有工件,因为它们更改了几个版本的目录结构,并且我未能更新我的脚本以更新 Nexus,因此 sonatype-work 目录丢失了。我需要重新部署一些工件以使构建成功。目前詹金斯正在以“git”的身份运行。它曾经以“jenkins”的身份运行,但最近我开始在访问本地存储库时遇到问题,即使我将凭据保存在 Jenkins 中。最近似乎出现了很多问题。
标签: java maven jenkins java-7 jdk6