【问题标题】:Unable to execute maven command on jenkins无法在詹金斯上执行maven命令
【发布时间】:2015-09-28 14:22:19
【问题描述】:

我有一个 jenkins 作业,它从 TFS 签出代码并使用 testng.xml 执行一个测试类

我已在 C:\JenkinsDependencies\apache-maven 的机器中正确安装了 Maven

它的 bin 文件夹中有 mvn.bat 文件。

但是当我执行我的工作时,它失败并出现以下错误。

检查预构建 [TFS_LN_Mobile] $ cmd.exe /C '"C:\JenkinsDependencies\apache-maven\bin\mvn.bat test && exit %%ERRORLEVEL%%"'

虚拟机初始化时出错

java/lang/NoClassDefFoundError: java/lang/Object

构建步骤“调用顶级 Maven 目标”将构建标记为失败

检查构建后 完成:失败

下面是我的詹金斯工作的配置: 我手动执行了一个批处理命令如下:

cd "C:\JenkinsRoot\workspace\TFS_LN_Mobile"
mvn test -DsuiteXmlFile=testng.xml

这很好用。

【问题讨论】:

  • 您是否为 jenkins 用户设置了 JAVA_HOME 和 M2_HOME 变量?
  • 在要检出代码的从机上,我已经设置了 MAVEN_HOME 和 JAVA_HOME。 M2_HOME 应该指向什么?
  • M2_HOME=/path/to/maven-3.2.5,这样当它执行 PATH=PATH:M2_HOME/bin 时,你的 mvn.bat 就在那里。
  • 我应该在我的 PATH 中附加 %M2_HOME%\bin 吗?
  • 从您的错误消息中,Jenkins 似乎能够找到您的 Maven。所以只需设置 JAVA_HOME 并将其添加到 PATH 就可以了。

标签: maven jenkins continuous-integration testng


【解决方案1】:

mvn.bat 是一个批处理脚本。您可以尝试在可能产生此错误的步骤之后添加其变量的跟踪。看看这个:Is there any way to trace through the execution of a batch file?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多