Ant 1.8.0版中记载了哪些classpath,path和pathelement?

我正在浏览Apache Ant版本1.8.0附带的文档,并且找不到类path,path和pathelement的文档。 我find了一个描述path结构的页面,但没有列出这些path的有效属性或嵌套元素。 在文档中找不到的另一件事是描述filelist,fileset,patternset和path之间的关系以及如何来回转换它们。 例如,必须有一种更简单的方法,即只编译一个包中的那些类,同时删除包类和更新文档上的所有类依赖关系。

<!-- Get list of files in which we're interested. --> <fileset id = "java.source.set" dir = "${src}"> <include name = "**/Package/*.java" /> </fileset> <!-- Get a COMMA separated list of classes to compile. --> <pathconvert property = "java.source.list" refid = "java.source.set" pathsep = ","> <globmapper from = "${src}/*.@{src.extent}" to = "*.class" /> </pathconvert> <!-- Remove ALL dependencies on package classes. --> <depend srcdir = "${src}" destdir = "${build}" includes = "${java.source.list}" closure = "yes" /> <!-- Get a list of up to date classes. --> <fileset id = "class.uptodate.set" dir = "${build}"> <include name = "**/*.class" /> </fileset> <!-- Get list of source files for up to date classes. --> <pathconvert property = "java.uptodate.list" refid = "class.uptodate.set" pathsep = ","> <globmapper from="${build}/*.class" to="*.java" /> </pathconvert> <!-- Compile only those classes in package that are not up to date. --> <javac srcdir = "${src}" destdir = "${build}" classpathref = "compile.classpath" includes = "${java.source.list}" excludes = "${java.uptodate.list}"/> <!-- Get list of directories of class files for package. --: <pathconvert property = "class.dir.list" refid = "java.source.set" pathsep = ","> <globmapper from = "${src}/*.java" to = "${build}*" /> </pathconvert> <!-- Convert directory list to path. --> <path id = "class.dirs.path"> <dirset dir = "${build}" includes = "class.dir.list" /> </path> <!-- Update package documentation. --> <jdepend outputfile = "${docs}/jdepend-report.txt"> <classpath refid = "compile.classpath" /> <classpath location = "${build}" /> <classespath> <path refid = "class.dirs.path" /> </classespath> <exclude name = "java.*" /> <exclude name = "javax.*" /> </jdepend> 

请注意,文件集,path和逗号分隔列表之间有许多转换,以便获得不同ant任务所需的正确“types”。 有一种方法来简化这个同时仍然处理复杂的目录结构中最less的文件?

这是我能find的最接近classpath的文档。

http://ant.apache.org/manual/using.html#path

path :

此对象表示由CLASSPATH或PATH环境variables使用的path。 path也可能被描述为独特文件系统资源的集合。

和PathElement :

Helper类保存嵌套的<pathelement>值。

直接在JavaDoc中定义。

ClassPath是AbstractClasspathResource的一个实现:

任何通过Java类加载器访问的资源表示。 提供了设置/parsing类path的核心方法。

这是Resource的直接子类:

描述“文件”资源(文件,ZipEntry等)。 这个类意味着需要logging有关文件,zip条目或一些类似资源(URL,在版本控制存储库中的存档…)的path和date/时间信息的类使用。

蚂蚁类图

FileSet被定义为:

FileSet是一组文件。 这些文件可以在基本目录中的目录树中find,并且可以从多个PatternSets和Selectors中获取模式。

select器被定义为:

select器是一种机制,可以根据<include><exclude>标记提供的文件名以外的标准select组成<fileset>文件。

PatternSet被定义为:

模式可以分组到集合中,稍后可以通过它们的id属性来引用。 它们是通过一个模式集元素来定义的,它可以嵌套到一个FileSet或一个基于目录的任务中,构成一个隐式的FileSet。 另外,模式集可以被定义为与目标同级别的独立元素 – 即作为项目的子项目以及目标子项目。

FileList被定义为:

FileLists是显式命名的文件列表。 而FileSets充当filter,仅返回文件系统中存在的文件并匹配指定的模式,FileLists对于指定可能存在或不存在的文件很有用。 多个文件被指定为相对于指定目录的文件列表,不支持通配符扩展(列表中包含通配符的文件名将保持不变)。 FileLists可以出现在支持此function的任务中,也可以作为独立的types出现。

Ant资源集合

在Schematron中,您可以通过以下方法进行validation:

  <sch:pattern> <sch:title>Check allowed elements</sch:title> <sch:rule context="target/*[name() = ancestor::*/taskdef/@name]"> <sch:assert test="true()"> The target element may contain user-defined tasks. </sch:assert> </sch:rule> </sch:pattern> 

参考

  • types – Apache Ant手册
  • 的antlib
  • Apache Ant / Build File Structure – 维基教科书,自由的教学读本
  • 用Ant1.7迎接新的挑战(pdf)
  • ant扩展ant
  • Apache Ant – Apache AntUnit
  • 用SchematronvalidationAnt
  • Ant脚本展示器