2016-01-13 81 views
0

问题:无法建立使用与詹金斯JDK 1.8Maven的詹金斯无法找到在JDK中的javac编译

说明春天Maven项目:进出口使用詹金斯建立由Maven.I有管理我的春天项目使用JDK安装选项在Jenkins中配置Java 1.7和1.8。当在构建配置中选择Java 1.7并运行构建时,构建过程就会成功。但是当我在构建配置中选择Java 1.8并运行构建时,构建过程失败。

****下面是詹金斯控制台输出****

Started by user anonymous 
Building in workspace C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace 
Updating file:///C:/DevEnv/Repositories/LocalSVNServerRepo/root/springsecuritysample/trunk at revision '2016-01-13T13:35:52.488 +0530' 
U   src\main\java\org\springframework\security\sample\HomeController.java 
At revision 21 
Parsing POMs 
[workspace] $ C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20/bin/java -cp C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-agent-1.5.jar;C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3\boot\plexus-classworlds-2.5.2.jar;C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3/conf/logging jenkins.maven3.agent.Maven31Main C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3 C:\Users\anonymous\.jenkins\war\WEB-INF\lib\remoting-2.53.2.jar C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-interceptor-1.5.jar C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar 52876 
<===[JENKINS REMOTING CAPACITY]===>channel started 
Executing Maven: -B -f C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace\pom.xml install 
Waiting for Jenkins to finish collecting data 
[JENKINS] Archiving C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace\pom.xml to org.springframework.security/sample/1.0.0-BUILD-SNAPSHOT/sample-1.0.0-BUILD-SNAPSHOT.pom 
Sending e-mails to: [email protected] 
channel stopped 
Archiving artifacts 
Sending e-mails to: [email protected] 
Finished: FAILURE 

*

我也跑了Maven的与Java 1.7和没有任何问题observerd手动。但是 当我跑一样与Java 1.8和重定向输出到文件, 发现下面的错误

*

INFO] Compiling 1 source file to C:\DevEnv\STSWorkspaces\springsecuritysample\target\classes 
[INFO] ------------------------------------------------------------- 
**[ERROR] COMPILATION ERROR :** 
[INFO] ------------------------------------------------------------- 
[ERROR] Unable to locate the Javac Compiler in: 
    C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20\..\lib\tools.jar 
Please ensure you are using JDK 1.4 or above and 
not a JRE (the com.sun.tools.javac.Main class is required). 
In most cases you can change the location of your Java 
installation by setting the JAVA_HOME environment variable. 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.640 s 
[INFO] Finished at: 2016-01-13T13:40:34+05:30 
[INFO] Final Memory: 8M/487M 
[INFO] ------------------------------------------------------------------------ 

JAVA_HOME变量被正确地指向JDK 1.8安装主目录和bin文件夹也被添加到该路径

回波%JAVA_HOME%结果在C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.8.0_20

瓦时恩改变了JAVA_HOME变量指向的Java 1.7,建立正常运行,没有错误

+0

的完整路径只是为了消除任何疑问,也确实是下'C安装了JDK:\ devenv的\ PROGRAMFILES \的Java \ jdk1.8.0_20'并指出当' JAVA_HOME',运行'javac -version'会产生正确的结果,对吗? – Morfic

+0

是的。运行命令C:\ Users \ anonymous> javac -version 结果输出 - > javac 1.8.0_20 – kavsik

+0

经过几个小时的调试后,maven获取了tools.jar来启动Sun的Main类,获得了成功(使用JDK 1.7)和失败(使用JDK 1)的自定义日志输出。8)构建运行如下 – kavsik

回答

0

根源

调试时,它结束了在神器的文件JavacCompiler.java丛,反编译javac的。在编译过程的输出不同的Java 8和Java 7

线System.getProperty( “java.home”)的Java 7 - C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.7.0_80 \ JRE

爪哇8 - C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.8.0_20

曾为解决方案:爪哇8的

重新安装

0

启动从属通过cmd但不型"java -jar slave.jar .....",而提java.exe作为"C:\Program Files\Java\jdk1.8.0_121\bin\java.exe" -jar slave.jar ......