【发布时间】:2018-12-18 14:32:07
【问题描述】:
我正在尝试在 Jenkins 中运行 maven,但得到:
...
Parsing POMs
Established TCP socket on 7547
[Spider] $ "C:\Program Files\Java\jdk-11.0.1/bin/java" C:\Program Files (x86)\apache-maven-3.6.0\bin -cp "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-agent-1.12.jar;C:\Program Files (x86)\apache-maven-3.6.0\boot\plexus-classworlds-2.5.2.jar;C:\Program Files (x86)\apache-maven-3.6.0/conf/logging" jenkins.maven3.agent.Maven35Main "C:\Program Files (x86)\apache-maven-3.6.0" "C:\Program Files (x86)\Jenkins\war\WEB-INF\lib\remoting-3.27.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-interceptor-1.12.jar" "C:\Program Files (x86)\Jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.12.jar" 7547
Error: Could not find or load main class C:\Program
Caused by: java.lang.ClassNotFoundException: C:\Program
ERROR: Failed to launch Maven. Exit code = 1
Finished: FAILURE
我明白了,Jenkins 正试图在C:\Program 中找到主类,这当然是错误的。但我找不到在哪里更改此设置。我的脚本在 IntelliJ 中运行良好,但在 Jenkins 中却不行。
非常感谢任何帮助。
【问题讨论】:
-
这可能是由于您提供 Maven bin 路径的方式而发生的。
C:\Program后面有一个空格,之后就无法读取路径。尝试将 Maven bin 路径放在双引号"C:\Program Files (x86)\apache-maven-3.6.0\bin"内。它应该可以工作。 -
或者您可以尝试使用变量
%programfiles%配置路径,尽管我不确定变量是否在此处正确展开 -
天哪!我在这个问题上花了很多时间.. 正是它是通往 Maven 的路径,但正如您在日志中看到的那样,只有
C:\Program,这对我没有任何意义。非常感谢@ANIL -
@AndreiSuvorkov 欢迎您。此外,还有另一种解决方案。您可以对路径使用以下表示法:对于 32 位:C:\Program Files (x86)\,您可以使用 c:\progra~2\;对于 64 位:C:\Program Files\,您可以使用 c:\程序~1\
-
肯定会这样做@AndreiSuvorkov
标签: java maven jenkins classnotfoundexception