使用ant的taskdef解析类路径并仅运行所需的目标

时间:2013-11-11 12:49:34

标签: ant classpath taskdef

我的 main-build.xml 如下所示:

<path id="run.classpath">
        <pathelement location="${build.lib.dir}/ant-{version}.jar"/>
        <pathelement location="${third-party.lib.dir}/some-{my-ver}.jar"/>
</path>

deploy.xml 在第三方jar中出现的一个类上使用taskdef ant任务:

<taskdef name="run-third-party-exec" classname="package.name.ThirdPartyExec"/>

sub-build.xml 导入 main-build.xml &amp; deploy.xml并尝试运行deploy.xml中存在的ant目标,但无法抱怨

taskdef package.name.ThirdPartyExec cannot be found

如何解决此类问题。由于所有taskdefs&amp;当我们在执行目标之前导入文件失败时执行导入。不确定将所有抱怨的第三方jar添加到ant的类路径是否正确?。

1 个答案:

答案 0 :(得分:0)

您的<taskdef>需要知道在哪里找package.name.ThirdPartyExec。通过提供类路径来执行此操作:

<taskdef 
    name="run-third-party-exec" 
    classname="package.name.ThirdPartyExec" 
    classpathref="run.classpath" 
/>