【问题标题】:Maven not recognized in Jenkins詹金斯不承认Maven
【发布时间】:2015-08-02 15:02:44
【问题描述】:

我在部署了 Jenkins 的 Windows 8 上安装了 Tomcat 7。我在 Jenkins 设置中配置了 JDK、Ant 和 Maven。在 Maven 部分,我将名称命名为 LocalMaven,并将 MAVEN_HOME 命名为 C:\Techie\apache-maven。当我进行测试构建时,它给了我以下错误,即无法识别 mvn.bat。然后我通过在 CMD 中输入 mvn 命令进行检查。它给出了一些 maven 语句,这意味着 maven 在 PATH 变量中可用。

谷歌搜索后,我在 Jenkins-Maven 配置中将 MAVEN_HOME 更改为 **%M2_HOME%\bin**。仍然没有用。

日志:

  • [workspace] $ cmd.exe /C '"mvn.bat -f HighScoresServiceClient compile && exit %%ERRORLEVEL%%"'

  • 'mvn.bat' 未被识别为内部或外部命令, 可运行的程序或批处理文件

  • 构建步骤“Invoke top-level Maven targets”将构建标记为失败

  • 已完成:FAILURE

已编辑:添加分析

Jenkins 执行的命令是[workspace] $ cmd.exe /C '"mvn.bat -f String-replacer compile && exit %%ERRORLEVEL%%"',其中 mvn.bat 不是有效命令,因此 Jenkins 错误如下,'mvn.bat' is not recognized as an internal or external command, 我认为 Jenkins 应该将该命令称为 mvn 而不是 mvn.bat。如果我错了,一些专家可以纠正我吗?如果我是对的,请告诉我如何改变这种行为。

已编辑:附加配置

【问题讨论】:

    标签: maven jenkins


    【解决方案1】:

    我想您的 Tomcat 服务器正在作为 Windows 服务运行。

    您是否将 MAVEN_HOME 和 M2_HOME 创建为系统环境变量? (同上,您的 PATH)

    另一种解决方案是在 apache-tomcat/bin/setenv.bat 文件中配置变量:

    set MAVEN_HOME=C:\Techie\apache-maven
    set PATH=%MAVEN_HOME%\bin;%PATH%
    

    【讨论】:

    • 我尝试创建系统变量。它不起作用。我什至将内容添加到 setenv.bat 文件中。它没有帮助:(
    • 在 Jenkins 设置中配置 Maven 时,是否在 Maven 部分声明了安装?您是否尝试过“自动安装”选项?
    • 最后一次测试,在你的工作中,你能尝试使用 Inject Env 插件并强制 PATH 到 %PATH%;C:\Techie\apache-maven\bin 吗?只是为了检查这是否解决了您的问题。
    • 您的设置似乎没问题。在您的 Jenkins 工作中,您是否在 Maven 版本列表框中选择了“LocalMaven”?
    • 感谢您的 cmets,这真的很有帮助。它具有默认值,一旦我将其更改为 LocalMaven,它就可以正常工作。非常感谢布鲁诺...
    【解决方案2】:

    我敢打赌,你已经安装了将 mvn.bat 重命名为 mvn.cmd 的 Maven 3.3

    Jenkins JIRA 中有关于这个问题的报告:https://issues.jenkins-ci.org/browse/JENKINS-27525

    【讨论】:

    • 此问题已通过升级 Jenkins 解决并可用。为了让它工作,我升级了 Jenkins 本身和 Maven 集成插件。为了让它工作,我还必须在项目配置中明确指定新的 Maven 版本,即使它被配置为使用我更新为指向新的 3.3 版本的“默认”Maven 版本。
    猜你喜欢
    • 2016-07-28
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多