如何添加" -lib / my / lib"以编程方式运行Ant?

时间:2015-01-28 10:08:58

标签: java ant

我正在尝试使用 org.apache.tools.ant 库从 Java 代码以编程方式运行 Ant 脚本。

这很好,除非我有一些外部定义的任务。

我们假设我的build.xml看起来如下:

<project name="sample" basedir="." default="all">
    <target name="all">
        <echo>Ant From Java</echo>
    </target>
    <taskdef name="mytask" classname="my.task.Mytask" /> 
</project>

我的文件 mylib.jar / home / mylib 目录中包含 my.task.Mytask

当我使用以下命令运行脚本时,脚本显然有效:

ant all -lib /home/mylib

但不是这个

ant all

在Java代码中,使用

以后的方式部署Ant非常容易
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
....
....
    String buildXmlFile = "/home/build.xml";
    Project project = new Project();
    File buildFile = new File(buildXmlFile);
    project.setUserProperty("ant.file", buildFile.getAbsolutePath());        
    project.fireBuildStarted();
    project.init();
    ProjectHelper projectHelper = ProjectHelper.getProjectHelper();
    project.addReference("ant.projectHelper", projectHelper);
    projectHelper.parse(project, buildFile);
    project.executeTarget("all");
    project.fireBuildFinished(null);

但我无法在 org.apache.tools.ant 库中找到“ -lib / home / mylib ”等效。

我几乎肯定它应该在某处,但我一直在尝试没有成功,也许有人知道我的问题的简单解决方案。

我会提供任何帮助!

0 个答案:

没有答案