【发布时间】: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