2016-01-13 2 views
0

Problème: Impossible de construire des projets de printemps Maven en utilisant Jenkins avec JDK 1.8Jenkins Maven Impossible de trouver le compilateur Javac dans JDK

Description de: Im en utilisant Jenkins pour construire mon projet de printemps géré par Maven.I ont J'ai configuré Java 1.7 et 1.8 dans Jenkins en utilisant les options Installations JDK. lors de la sélection de Java 1.7 dans la configuration de construction et l'exécution de la construction, le processus de construction est un succès. Mais quand je sélectionne Java 1.8 dans la configuration de construction et exécute la construction, le processus de construction est échoué.

**** Ci-dessous la sortie de la console de jenkins ****

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 

*

J'ai aussi couru Maven manuellement avec Java 1.7 et pas de problèmes respecter lors. Mais quand je courais la même chose avec Java 1.8 et redirigés vers la sortie de fichier, trouvé l'erreur ci-dessous

*

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] ------------------------------------------------------------------------ 

variable JAVA_HOME pointe correctement le répertoire d'installation JDK 1.8 et bin dossier est également ajouté au chemin

echo% JAVA_HOME% des résultats dans C: \ devenv \ Program Files \ Java \ jdk1.8.0_20

Wh en a changé la variable JAVA_HOME pour pointer vers Java 1.7, construire fonctionne normalement et aucune erreur

+0

Juste pour éliminer tout doute, il est en effet un jdk installé sous 'C: \ devenv \ Program Files \ Java \ jdk1.8.0_20' et en pointant' JAVA_HOME', lancer 'javac -version' donne le résultat correct, non? – Morfic

+0

Oui ... Exécuter la commande C: \ Utilisateurs \ anonymes> javac -version résultats dans la sortie -> javac 1.8.0_20 – kavsik

+0

Après quelques heures de débogage sur comment maven obtient le tools.jar pour lancer la classe principale du soleil , a obtenu des sorties de journal personnalisées pour le succès (en utilisant JDK 1.7) et l'échec (en utilisant JDK 1.8) build s'exécute comme ci-dessous – kavsik

Répondre

0

Racine cause

quand débogué, il a fini dans le fichier JavacCompiler.java d'artefact plexus-compiler- javac. La ligne System.getProperty ("java.home") dans les sorties de processus de compilation différemment pour Java et Java 8 7

Java 7 - C: \ devenv \ ProgramFiles \ Java \ jdk1.7.0_80 \ jre

Java 8 - C: \ devenv \ ProgramFiles \ Java \ jdk1.8.0_20

travaillé Solution:

Re-installation de Java 8

0

Lancement de l'esclave par cmd mais ne le type "java -jar slave.jar .....", plutôt mentionner le chemin complet de java.exe comme "C:\Program Files\Java\jdk1.8.0_121\bin\java.exe" -jar slave.jar ......