Ant内置任务之depend

一、概述

        depend是Ant内置任务,用于管理java类文件依赖。depend的工作原理是确定相对于源哪些类是过期的,并且删除所有依赖于过期类的其他类文件。depend通过分析传递给它的所有类文件来确定类的依赖关系。depend不以任何方式解析源代码,而是依赖于通过编译器编码到类文件中的类引用,这通常比解析java源文件快。因为类的依赖关系只在类本身改变时才会变化,所以depend可以用来缓存依赖信息。只有在类文件变化时才会重新分析它们的依赖关系。当发现了所有的类依赖项,就会反转此关系来确定每个类有哪些其他类依赖于它。要注意的是有些依赖关系是无法检测的:1)如果java编译期优化了依赖关系,在没有依赖的情况下可以有源依赖项。2)非公共类有两个问题,首先类文件不能关联源文件(以后可能会解决类文件中使用源文件属性的问题);其次,当非公有类丢失时,无论是依赖还是编译任务都不能检测。depend形成了一个隐式文件集,并且支持fileset的大多数属性,以及include、exclude、patternset嵌套元素。classpath属性也可以通过嵌套classpath元素来设置。

二、属性

        srcDir:源所在目录,depend会检查这个目录来确定哪些类过期了。
        destDir:要分析的类文件的根目录。如果不设置默认于srcDir相同。
        cache:一个可以存储和检索依赖信息的目录。如果不设置,就不使用缓存。
        closure:是否只考虑直接的类类关系还是也考虑间接的类类关系,假设有三个类,A依赖于B,B依赖于C,当C类过期时,如果closure为false,只会删除B类,如果closure设置为true,A类也会被删除。通常直接关系就足够了。默认为false。
        dump:如果为true,依赖信息会写入debug级别的日志中。
        classpath:如果设置此属性,depend会对这个类路径中jar和类进行依赖关系检查。任何依赖于此类路径中的元素且比该元素旧的类都将被删除。例如,当构建一个工具包时,希望确保这个jar中过期的类能够重新构建。不要在classpath中配置你不想改变的jar,比如,JDK运行时jar或者第三方jar,因为这样会减慢依赖项的检查速度。
        warnOnRmiStubs:标记禁止警告类似rmic生成的存根/骨架类的没有.java源文件的文件。在进行rmi开发时很有用,默认为true。

三、简单示例


	


你可能感兴趣的:(Ant入门,ant任务,ant,task,depend)