Ant數據類型
Ant提供了一些預定義的數據類型。不要混淆,也可在編程語言中的數據類型,而是考慮數據類型的設置被內置到產品中服務。
下麵是一個由Apache Ant的提供的數據類型的列表
文件集合
該文件集的數據類型表示文件的集合。該文件集的數據類型通常是作為一個過濾器,以包括和排除匹配特定模式的文件。
例如:
<fileset dir="${src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Stub*"/> </fileset>
在上麵的例子中的src屬性指向項目的源文件夾。
在上麵的例子中,文件集的選擇,除了那些包含在其中單詞“Stub”源文件夾中的所有java文件。在大小寫敏感的過濾器應用到文件集這意味著名為Samplestub.java一個文件不會被排除在文件集
模式集
一個模式集是一個模式,可以非常方便地篩選基於某種模式的文件或文件夾。可以使用下麵的元字符來創建模式。
- ? - 隻匹配一個字符
- * - 匹配零個或多個字符
- ** - 匹配零個或多個目錄遞歸
下麵的例子應該給一個模式集的用法的想法。
<patternset id="java.files.without.stubs"> <include name="src/**/*.java"/> <exclude name="src/**/*Stub*"/> </patternset>
patternset 可以用一個文件集重用如下:
<fileset dir="${src}" casesensitive="yes"> <patternset refid="java.files.without.stubs"/> </fileset>
文件列表
在文件列表的數據類型類似設置,除了在文件列表中包含顯式命名的文件列表,不支持通配符的文件
文件列表和文件組的數據類型之間的另一個主要區彆是,在文件列表的數據類型可應用於可能會或可能還不存在的文件。
以下是文件列表的數據類型的一個例子
<filelist id="config.files" dir="${webapp.src.folder}"> <file name="applicationConfig.xml"/> <file name="faces-config.xml"/> <file name="web.xml"/> <file name="portlet.xml"/> </filelist>
在上麵的例子中webapp.src.folder屬性指向該項目的Web應用程序的源文件夾。
過濾器集
使用與複製任務篩選器集的數據類型,你可以匹配一個替代值的模式,所有的文件替換一定的文本。
一個常見的例子是附加版本號的發行說明文件,如下麵的示例所示
<copy todir="${output.dir}"> <fileset dir="${releasenotes.dir}" includes="**/*.txt"/> <filterset> <filter token="VERSION" value="${current.version}"/> </filterset> </copy>
在上麵的例子中output.dir屬性指向項目的輸出文件夾。
在上麵的例子點releasenotes.dir屬性的發行說明的項目文件夾中。
在上麵的例子中current.version屬性指向的項目的當前版本中的文件夾。
副本任務,顧名思義是用來從一個位置複製到另一個文件。
路徑
path 數據類型通常用來代表一個類路徑。在路徑項用分號或冒號隔開。然而,這些字符會被正在運行的係統的路徑分隔符替換一個運行時間。
最常見的類路徑設置為項目中的jar文件和類的列表,如下麵的例子:
<path id="build.classpath.jar"> <pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> </path>
在上麵的例子中env.J2EE_HOME屬性指向環境變量J2EE_HOME。
在上麵的例子中的j2ee.jar屬性指向在J2EE基礎文件夾J2EE的jar文件的名稱。