Jenkins AntExec插件不能与ant contrib一起使用

时间:2015-01-22 15:42:22

标签: ant jenkins

我在Windows 2003服务器上运行最新的Jenkins。 在,管理詹金斯: 我有IBM JDK集 我有蚂蚁:org.apache.ant_1.7.1.v20100518-1145设为蚂蚁家 我安装了Jenkins AntExec插件。 我在anthome / lib里面有ant-contrib-0.6.jar。

我创建了一个作业,并添加了一个构建步骤,Execute Apache Ant,我有这个:

<echo> java home = ${JAVA_HOME}</echo>

<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<project name="Test">

<description> Sample bulid file </description>
<target name="first">
<echo message="The first five letters of the alphabet are:"/>
<antcontrib:for list="a,b,c,d,e" param="letter">
  <sequential>
    <echo>Letter @{letter}</echo>
  </sequential>
</antcontrib:for>
</target>
</project>

当我运行build时,它失败了。

antexec_build.xml:
     [echo]  ant home = ${ANT_HOME}
     [echo]  java home = ${JAVA_HOME}

BUILD FAILED
C:\Program Files (x86)\Jenkins\jobs\MCSOWelcome\workspace\antexec_build.xml:13: Problem: failed to create task or type project
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

我尝试了很多不同的东西,没有运气。请建议

2 个答案:

答案 0 :(得分:0)

AntExec与AntContrib捆绑在一起。您无需添加或定义它。相反,要禁用它,您需要在获得选项之前打开2个高级... 对话框。

您需要做的是使用antcontrib命名空间 例如,要使用for,请键入:
<antcontrib:for>

答案 1 :(得分:0)

我遇到了同样的问题(我收到了同样的错误消息:Problem: failed to create task or type project),虽然我没有使用<antcontrib:for>标记。

如果您在项目配置&gt;中为Script source字段键入一些代码执行Apache Ant,插件不会将其用作整个Ant脚本文件,但会将其插入到模板脚本中。如果您选择保留构建文件(“执行Ant构建”步骤的“高级”视图),则会显示。在这种情况下,生成的antexec_build.xml Ant脚本在构建后不会从项目的工作区中删除。

使用Script source

中输入的这个简单脚本可以重现该问题
<project>
</project>

生成的antexec_build.xml

<?xml version="1.0" encoding="utf-8"?>
<project default="antexec_build.xml" xmlns:antcontrib="antlib:net.sf.antcontrib" basedir=".">

    <!-- Read additional properties -->
    <property file="antexec_build.xml.properties"/>

    <!-- Make environment variables accesible via ${env.VARIABLE} by default -->
    <property environment="env"/>

    <target name="antexec_build.xml">
        <!-- Default target entered in the first textarea - begin -->
        <project>
        </project>
        <!-- Default target entered in the first textarea -  end  -->
    </target>
</project>

因此,解决方案是只包含您要插入<target></target>标记的Ant脚本。