2013-06-30 97 views
10

我跟着與GIT和Maven一起設置了Jenkins(因爲我使用的是Linux CenOS,所以略有改動)。Jenkins無法運行Maven

我試圖測試上Demo Maven project from GitHub

詹金斯我的設置試圖執行Maven的時候拋出異常。所以我試着克隆這個項目並手動運行Maven,它工作正常。

所以問題出在Jenkins運行Maven。我試圖搜索谷歌的問題,但無法找到任何有用的信息。

我現在懷疑是:

  1. 也許詹金斯沒有使用正確的類路徑執行的Maven。這可能是由於缺少讀取文件的權限,因爲Jenkins在linux上擁有自己的用戶(名爲jenkins)。
  2. 也許Maven安裝不正確。我手動安裝它,而不是讓Jenkins爲我安裝它,因爲我需要此安裝程序脫機工作。

下面是從詹金斯的控制檯輸出:

Started by an SCM change 
Building in workspace /var/lib/jenkins/jobs/Omri/workspace 
Checkout:workspace//var/lib/jenkins/jobs/Omri/workspace - [email protected] 
Using strategy: Default 
Last Built Revision: Revision af62f13d2374bc00a4b67f7586bfd52b7bda80eb (origin/prepare) 
Fetching changes from 1 remote Git repository 
Fetching upstream changes from origin 
Seen branch in repository origin/HEAD 
Seen branch in repository origin/master 
Seen branch in repository origin/prepare 
Seen 3 remote branches 
Commencing build of Revision a9a1fc4a96d4ac4af3ca5e7e3b7393a6df4bf555 (origin/HEAD, origin/master) 
Checking out Revision a9a1fc4a96d4ac4af3ca5e7e3b7393a6df4bf555 (origin/HEAD, origin/master) 
No change to record in branch origin/HEAD 
No change to record in branch origin/master 
Parsing POMs 
Modules changed, recalculating dependency graph 
[workspace] $ /usr/java/jdk1.7.0_17/bin/java -cp /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.3.jar:/home/jenkins/maven/boot/plexus-classworlds-2.4.2.jar org.jvnet.hudson.maven3.agent.Maven3Main /home/jenkins/maven/ /var/cache/jenkins/war/WEB-INF/lib/remoting-2.24.jar /var/lib/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.3.jar 53953 
<===[JENKINS REMOTING CAPACITY]===>���channel started 
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter). 
log4j:WARN Please initialize the log4j system properly. 
Executing Maven: -B -f /var/lib/jenkins/jobs/Omri/workspace/pom.xml -Dmaven.repo.local=/var/lib/jenkins/maven-repositories/1 package 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    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:174) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:100) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:66) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenLoggerManager 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    ... 19 more 
channel stopped 
ERROR: Failed to parse POMs 
hudson.util.IOException2: java.lang.reflect.InvocationTargetException 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:162) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:66) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.Exception: java.lang.reflect.InvocationTargetException 
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:177) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:100) 
    ... 10 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    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:174) 
    ... 11 more 
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenLoggerManager 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    ... 19 more 
Finished: FAILURE 

想法嗎? 謝謝。

+0

我可以在安裝了maven 3.0.5的命令行上正確運行你的maven項目。你可以在命令行上爲你的項目運行maven嗎? – Behe

回答

18

顯然問題是我安裝了最新的Maven版本,這是不穩定的。隨着最新的穩定版本 - 3.0.5 - 一切工作正常。

+0

Blatant廣告,但仍然相關,你可以使用wrappers uch作爲Maven包裝來自動化Maven的安裝和設置:https://github。 COM/rimerosolutions/Maven的包裝。這在構建機器上很方便,並有助於避免常見問題,例如使用不穩定或未經測試的Maven版本。 – rimero

+2

這個版本現在很穩定,但仍然不能與詹金斯合作。 –

+3

Jenkins> = 1.525應該能夠使用Maven 3.1.0(請參閱https://issues.jenkins-ci.org/browse/JENKINS-15935) – Henning

1

這就是:

Caused by: java.lang.NoClassDefFoundError: org/apache/maven/cli/MavenLoggerManager 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:73) 
    ... 18 more 

如果你沒有讓詹金斯安裝Maven,那麼你需要配置Maven安裝應該使用的位置。

+0

我這樣做 - 正如我所說的,我遵循鏈接中的教程,包括配置 – Malki