Maven 2 让hudson与maven编制回购协议

Maven 2 让hudson与maven编制回购协议,maven-2,hudson,Maven 2,Hudson,我试图让Hudson编译我的一个Java项目,但一直失败 我开始了一份新的工作,“构建一个自由风格的软件项目” 我已经将SCM设置为Mercurial,添加了一个构建步骤“mvn编译”,并让它发布Junit和JDepend结果。名为“*.xml”的JUnit测试报告 回购协议的克隆是可行的,但回购协议拒绝编译。我收到以下错误消息: [workspace] $ /usr/local/bin/hg log --rev . --template {node} [workspace] $ /bin/ba

我试图让Hudson编译我的一个Java项目,但一直失败

我开始了一份新的工作,“构建一个自由风格的软件项目”

我已经将SCM设置为Mercurial,添加了一个构建步骤“mvn编译”,并让它发布Junit和JDepend结果。名为“*.xml”的JUnit测试报告

回购协议的克隆是可行的,但回购协议拒绝编译。我收到以下错误消息:

[workspace] $ /usr/local/bin/hg log --rev . --template {node}
[workspace] $ /bin/bash -xe /tmp/hudson1162267116265588070.sh
+ mvn compile
/tmp/hudson1162267116265588070.sh: line 2: mvn: command not found
Recording test results
[JDepend] JDepend plugin is ready
[JDepend] Starting JDepend file, outputting to /tmp/jdepend6348540211061861772.xml
[JDepend] Found 2 classes in 1 packages
Finished: FAILURE
编辑:mvn-ver的结果

Java version: 1.6.0_21
Java home: /usr/java/jdk1.6.0_21/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-25-generic" arch: "i386" Family: "unix"
还有,我添加到/etc/bash.bashrc文件中的内容

export JAVA_HOME=/usr/java/jdk1.6.0_21
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH

export MAVEN_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export MAVEN=$MAVEN_HOME/bin
还有$PATH回音

/usr/local/apache-maven/apache-maven-2.2.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/java/jdk1.6.0_21/bin


约翰五世的回答及其评论的重要部分

它找不到maven,因为它不在路径中。如果你在Hudson的个人资料中设定路径,你就不走运了。配置文件将仅对登录shell执行。好的,Hudson打开一个非交互式shell来执行构建步骤,因此,.profile将不会被执行


当您使用Hudson用户帐户登录并运行maven命令时,您不会遇到任何问题,因为配置文件已正确执行。

John V答案及其注释的基本部分

它找不到maven,因为它不在路径中。如果你在Hudson的个人资料中设定路径,你就不走运了。配置文件将仅对登录shell执行。好的,Hudson打开一个非交互式shell来执行构建步骤,因此,.profile将不会被执行

当您使用Hudson用户帐户登录并运行maven命令时,您不会遇到任何问题,因为配置文件已正确执行。

您是否可以运行“mvn-ver”,如果该命令失败,则是maven的问题,而不是Hudson的问题。您是否可以运行“mvn-ver”,如果该命令失败,则是maven的问题,而不是Hudson的问题。