如何解析和解释ant的build.xml

Yis*_*hai 3 java ant build classpath

是否有用于读取和ant build.xml并从中检索元素的Ant API?具体来说,我希望能够检索路径元素中的值,并能够遍历路径中的所有元素.

我的目的是检索给定路径并确保在清单中正确引用它,以便在产品投入生产时构建和清单匹配.

编辑:关于使用XML API的响应(并感谢他们),问题是当前构建的构建文件比这更复杂.即类路径引用不同的类路径并包含它,类路径中引用的元素本身在属性文件中定义,因此有太多的Ant API可以合理地重新创建.

Jas*_*Day 7

您可以使用ProjectHelper该类使用构建文件配置项目.如果要检查的路径包含在引用中,则可以通过其ID从项目中获取引用.

例如,如果你有这样的东西build.xml:

<path id="classpath">
    <fileset dir="${basedir}/lib" includes="*.jar"/>
</path>
Run Code Online (Sandbox Code Playgroud)

然后,您可以Path使用以下代码获取引用:

import java.io.File;

import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
import org.apache.tools.ant.types.Path;

public class Test {
    public static void main(String[] args) throws Exception {    
        Project project = new Project();
        File buildFile = new File("build.xml");
        project.init();
        ProjectHelper.configureProject(project, buildFile);

        Path path = (Path) project.getReference("classpath");
     }
}
Run Code Online (Sandbox Code Playgroud)

请注意,ProjectHelper.configureProject在ant 1.6.2中不推荐使用,但在1.7中不推荐使用.