我在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.
我尝试了很多不同的东西,没有运气。请建议
答案 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脚本。