代码之家  ›  专栏  ›  技术社区  ›  Andrei Suvorkov

在Jenkins中运行Maven时ClassNotFoundException

  •  1
  • Andrei Suvorkov  · 技术社区  · 5 年前

    我想在詹金斯管理马文,但得到:

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

    我明白了,詹金斯想找一个 C:\Program ,当然有什么问题。但我找不到更改此设置的位置。我的脚本在intellij中运行得很好,但在jenkins中没有。

    任何帮助都很重要。

    1 回复  |  直到 5 年前
        1
  •  1
  •   ANIL    5 年前

    发生错误的原因是您声明maven bin路径的方式。后面有一个空间 C:\Program 在里面 C:\Program Files (x86)\apache-maven-3.6.0\bin 这就是问题的根源。詹金斯正在里面找你的Maven Bin文件夹 C:\程序 这是不存在的。

    您可以通过两种方式解决它:

    第一,尝试将maven bin路径放在双引号中:

    "C:\Program Files (x86)\apache-maven-3.6.0\bin"

    或者,您可以使用下面给出的更抽象的方法:

    对路径使用这些符号:

    为了 32位 : C:\Program Files (x86)\ ,你可以使用 c:\progra~2\

    为了 64位 : C:\Program Files\ ,你可以使用 c:\progra~1