FileSet是一组文件,这些文件可以在基目录树下找到且与指定的PatternSets和Selectors匹配。FileSet的结构类似于如下:
1)<fileset dir="${server.src}">
<patternset/>
<Selector/>
</fileset>
2)patternset一般用作FileSet的子元素,用来帮助筛选文件。可以包含如下的子元素:include,exclude,includes,excludes,includesfile,excludesfile.
FileSet 中隐式地包含了一个patternset元素,所以可以在FileSet中直接包含patterset中的元素,例如<include>, <includesfile>, <exclude> and <excludesfile> 。
如下的patternset包含std子目录下的java文件,如果professional定义的话还包含prof下的java文件,但是不包含名字中包含Test的文件。
<patternset id="sources">
<include name="std/**/*.java"/>
<include name="prof/**/*.java" if="professional"/>
<exclude name="**/*Test*"/>
</patternset>
3)Selector一般用作FileSet的子元素,用来帮助筛选文件。
常用的核心的selector有:
<contains> - 用来选择包含指定字符串的文件
<date> - 用来选择在某个特定时间前或后修改的文件
<depend> - Select files that have been modified more recently than equivalent files elsewhere
<depth> - 用来选择指定目录深度的文件
<different> - Select files that are different from those elsewhere
<filename> - 用来选择文件名匹配特定模式的文件。等价于include和exclude的patternset。
<present> - 用来选择在某个位置存在或不存在的文件
<containsregexp> - 用来选择匹配指定正则表达式的文件
<size> - 用来选择比指定size大或小的文件
<type> - Select files that are either regular files or directories.
<modified> - Select files if the return value of the configured algorithm is different from that stored in a cache.
<signedselector> - Select files if they are signed, and optionally if they have a signature of a certain name.
<scriptselector> - Use a BSF or JSR 223 scripting language to create your own selector
<readable> - 选择有readable属性的文件
<writable> - 选择有writable属性的文件
例如选择包含script的所有的html文件
<fileset dir="${doc.path}" includes="**/*.html">
<contains text="script" casesensitive="no"/>
</fileset>
例如选择所有在January1,2001前修改的JAR文件
<fileset dir="${jar.path}" includes="**/*.jar">
<date datetime="01/01/2001 12:00 AM" when="before"/>
</fileset>
例如选择所有满足正则表达式的txt文件
<fileset dir="${doc.path}" includes="*.txt">
<containsregexp expression="[4-6]\.[0-9]"/>
</fileset>
如下的selector与patternset等价:
<fileset dir="${server.src}" casesensitive="yes">
<filename name="**/*.java"/>
<not>
<filename name="**/*Test*"/>
</not>
</fileset>
等价于
<fileset dir="${server.src}" casesensitive="yes">
<filename name="**/*.java"/>
<filename name="**/*Test*" negate="true"/>
</fileset>
等价于
<fileset dir="${server.src}" casesensitive="yes">
<include name="**/*.java"/>
<exclude name="**/*Test*"/>
</fileset>
selector容器可以包含其他的selector,常用的selector容器有:
<and>
<contains>
<custom>
<date>
<depend>
<depth>
<filename>
<majority>
<none>
<not>
<or>
<present>
<selector>
<size>
例如选择比4096bytes大且从上个millenium没有更新的JAR文件
<fileset dir="${dist}" includes="**/*.jar">
<and>
<size value="4" units="Ki" when="more"/>
<date datetime="01/01/2001 12:00 AM" when="before"/>
</and>
</fileset>
相关推荐
<fileset dir="src"> **/*.java"/> **/Test*.java"/> </fileset> ``` 这将包含所有的`.java`文件,但排除名字以`Test`开头的文件。 以上只是Ant中部分核心元素的简要介绍,实际上Ant提供了丰富的元素和属性,允许...
数据类型是可重用的配置元素,如文件集(Fileset)和路径(Path);条件则用于控制流程,比如检查文件是否存在。 三、Ant脚本 Ant使用XML格式编写构建脚本,这种格式使得脚本易于理解和维护。一个基本的Ant脚本包含...
7. **文件集(Fileset)** 文件集是Ant处理一组文件的方式,可以指定目录、文件名模式等,用于指定需要操作的文件。 8. **Ant的最佳实践** - 分离任务:每个任务应尽可能独立,方便复用和维护。 - 层次化构建:...
总结,引入第三方Jar包到Ant项目中主要涉及`<classpath>`、`<pathelement>`、`<fileset>`、`<path>`以及可能的远程仓库管理。正确配置这些元素,确保JVM在编译和运行时能找到所需的所有依赖,从而保证项目的顺利执行...
在Ant的构建脚本中,我们可以使用`<taskdef>`元素来引入Ant Contrib中的任务,这样我们就可以在脚本中使用这些扩展任务。例如,要使用`for`任务,我们需要在脚本开头定义任务: ```xml ...
在Ant中,我们可以通过`<fileset>`元素来指定多个源代码目录。例如,如果项目有两个源代码目录`src/main/java`和`src/test/java`,我们可以这样配置: ```xml <fileset dir="src/main/java"> **/*.java"/> </...
定义路径时,可以使用通配符和文件集(fileset),这对于管理文件和目录非常有帮助。在定义任务时,可以利用Ant提供的大量内置功能,如拷贝文件、压缩解压缩、生成文档等,也可以扩展自定义任务以满足特殊需求。 在...
此外,Ant支持使用文件集(fileset)来指定一组文件,这对于处理大量文件非常有用。例如,你可以创建一个文件集来包含所有的Java源代码,然后用它来执行编译任务。 标签"java"表明Ant主要与Java开发相关,但Ant也...
6. **文件集(Filesets)**:解释如何选择一组文件进行操作,如`<fileset>`元素和相关的`include`、`exclude`模式。 7. **宏定义(Macros)**:说明如何创建自定义任务或任务集合,以提高代码复用性。 8. **脚本支持**...
它可以包含`pathelement`、`fileset`等子元素,用于指定JAR文件、目录或其他资源的位置。 6. **fileset** 元素:用于定义一组文件,通常根据文件名、目录或日期范围进行筛选。`fileset`在`<include>`和`<exclude>`...
在这个例子中,`destfile`属性指定了输出的JAR文件,`fileset`定义了要包含的文件(这里是编译后的类文件),而`manifest`部分则添加了主类的信息,使得JAR文件可以作为可执行程序运行。 在描述中提到的"ant-jar...
4. **Fileset**:文件集是一种选择文件和目录的方式,它可以包含通配符,如`**/*.java`表示所有子目录下的Java源文件。Fileset常用于指定任务操作的文件范围。 5. **Dependency Management**:Ant能够处理任务间的...
它们通过`<fileset>`元素定义,并可以用包含和排除模式来过滤文件。 5. **路径(Path)**:Ant中的路径元素可以用来表示类路径或源路径,它可以包含多个文件集和单个文件。 6. **条件(Condition)**:条件元素...
5. **文件集(FileSet)**:Ant提供了对文件和目录操作的支持,文件集(FileSet)是其中的一种,它可以指定一组文件,常用于拷贝、删除等操作。文件集通过`DirSet`和`FileList`等类实现。 6. **任务链...
2. jar:创建JAR文件,通过manifest属性指定清单文件,fileset元素用来包含需要打包的类。 3. delete:删除文件或目录,使用file或dir属性指定路径。 4. copy:复制文件或目录,可以使用todeldir属性指定目标位置。 ...
<fileset dir="${src1}"> *.jar" /> </fileset> ``` ##### 2.2 使用外部配置文件 为了更好地组织和管理这些property,可以将它们集中存放在外部的`.properties`文件中。这种方式不仅可以提高可维护性,还...
- **`fileset`**: 用于指定包含在类路径中的文件集。 - **`include`**: 指定包含哪些文件。 - **`pathelement`**: 将指定路径添加到类路径中。 ##### 4. `<target>`元素 表示一个构建目标,可以包含一系列的任务...
5. **文件集(Filesets)**:在处理大量文件时,Ant提供了文件集的概念,它可以用来指定一组文件,如`<fileset dir="${src.dir}" includes="**/*.java"/>`会包含所有源代码目录下的.java文件。 6. **类路径...
<fileset refid="maven.fileset"/> ``` 在这个例子中,`pom.xml` 是项目的 POM 文件,`dependency` 任务会解析 POM 文件中的依赖,并将它们下载到指定的目录(如 `lib`)。 除了依赖管理,Maven Ant Tasks 还...