蚂蚁与哈德森

时间:2011-02-23 14:53:29

标签: java svn ant hudson

我在Hudson中运行Job时遇到问题。我已经使用ANT_HOME配置了Hudson,其中包含ant和JDK的路径以及相对路径。 我创建了一个新工作,在那里我设置了SVN路径和其他东西。 我的项目的build.xml位于Project root Folder / build / build.xml

他们在Linux中添加了build.xml。这是这样的。

<project name="Test Job" default="build">
    <target name="clean">
        <delete dir="${basedir}/svn/_build"/>
        <delete dir="${basedir}/build"/>
    </target>
    <target name="prepare">
        <mkdir dir="${basedir}/svn/_build/logs"/>
        <mkdir dir="${basedir}/build/logs"/>
        <mkdir dir="${basedir}/build/docs"/>
    </target>
    <target name="build"
            depends="clean,prepare"/>
</project> 

注意:我将我的工作名称设置为usercentral。

然后我尝试在Hudson上构建。它给了我以下错误。

FATAL: command execution failed.Maybe you need to configure the job to choose one of your Ant installations?
java.io.IOException: Cannot run program "ant" (in directory "/root/.hudson/jobs/userCentral/workspace/branches/branches/build"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.(Proc.java:192)
    at hudson.Proc$LocalProc.(Proc.java:164)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:638)
    at hudson.Launcher$ProcStarter.start(Launcher.java:273)
    at hudson.Launcher$ProcStarter.join(Launcher.java:280)
    at hudson.tasks.Ant.perform(Ant.java:216)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:603)
    at hudson.model.Build$RunnerImpl.build(Build.java:172)
    at hudson.model.Build$RunnerImpl.doRun(Build.java:137)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:417)
    at hudson.model.Run.run(Run.java:1362)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.(UNIXProcess.java:148)
    at java.lang.ProcessImpl.start(ProcessImpl.java:65)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
    ... 15 more
Finished: FAILURE

任何人都可以帮助我。

4 个答案:

答案 0 :(得分:6)

$ANT_HOME/bin附加到您现有的PATH,以便Hudson能够查找蚂蚁命令......或者至少,这就是我修复同样问题的方法。

答案 1 :(得分:3)

给哈德森提供蚂蚁安装的绝对路径。你可以在配置中做到这一点。然后在您的构建中使用此ant安装。你不必给ANT_HOME。

答案 2 :(得分:1)

首先,我告诉Hudson使用它自动安装的某个版本的Ant,并为该版本的Ant命名。 (来自Manage Hudson的&Ant部分 - >配置系统页面)

其次,我告诉使用Ant的新项目。 (来自项目配置的Invoke Ant部分“

答案 3 :(得分:0)

听起来可能是权限问题。哈德森用户是否可以访问所有相关文件和目录的目录路径?