首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Taskdef +可用任务在使用“从级别”时导致失败

Taskdef +可用任务在使用“从级别”时导致失败
EN

Stack Overflow用户
提问于 2015-06-05 07:30:20
回答 1查看 441关注 0票数 1

我正在通过一个taskdef加载ant-cont肋骨,然后我将检查创建'IfTask‘的可用任务。这是失败的

代码语言:javascript
复制
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="/path/to/ant/contrib.jar"/>

<condition property="IfTaskAvailable">
<available classname="net.sf.antcontrib.logic.IfTask"/>
</condition>
<fail message="The If task is not defined" unless="IfTaskAvailable"/>

可用的任务似乎没有使用taskdef使用的相同的类加载程序进行检查?

编辑后,奥列格帕夫利夫回答,经过一点吉丁,这是有效的工作。我的问题应该更清楚些。

这在Ant中有效,但在从Gradle调用ant时(即在gradle构建中),则不起作用:

代码语言:javascript
复制
ant.taskdef(uri:'antlib:net.sf.antcontrib', resource:'net/sf/antcontrib/antcontrib.properties', classpath: '/path/to/ant/contrib.jar')
ant.available(classname:'net.sf.antcontrib.logic.IfTask')
EN

回答 1

Stack Overflow用户

发布于 2015-06-05 08:41:34

可能/path/to/ant/contrib是不正确的

在我的电脑上它能工作

代码语言:javascript
复制
<project  xmlns:if="ant:if"  xmlns:unless="ant:unless">

    <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="c:/Soft/Java/apache-ant-1.9.4/lib/ant-contrib-1.0b3.jar"/>

    <condition property="IfTaskAvailable">
        <available classname="net.sf.antcontrib.logic.IfTask"/>
    </condition>

    <fail message="Error: The If task is not defined" unless="IfTaskAvailable"/>
    <echo message="IfTaskAvailable: ${IfTaskAvailable}" />

</project>

输出量

代码语言:javascript
复制
/cygdrive/c/temp/ant>ant
Buildfile: c:\temp\ant\build.xml
     [echo] IfTaskAvailable: true

BUILD SUCCESSFUL
Total time: 0 seconds

编辑:如果您从gradle调用它,您也应该在classpath中指定available

代码语言:javascript
复制
<project  xmlns:if="ant:if"  xmlns:unless="ant:unless">

    <target name="main">
        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="c:/Soft/Java/apache-ant-1.9.4/lib/ant-contrib-1.0b3.jar"/>

        <condition property="IfTaskAvailable">
            <available classname="net.sf.antcontrib.logic.IfTask" classpath="c:/Soft/Java/apache-ant-1.9.4/lib/ant-contrib-1.0b3.jar"/>
        </condition>

        <fail message="Error: The If task is not defined" unless="IfTaskAvailable"/>
        <echo message="IfTaskAvailable: ${IfTaskAvailable}" />
    </target>
</project>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30660792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档