Ant數據類型

Ant提供了一些預定義的數據類型。不要混淆,也可在編程語言中的數據類型,而是考慮數據類型的設置被內置到產品中服務。

下面是一個由Apache Ant的提供的數據類型的列表

文件集合

該文件集的數據類型表示文件的集合。該文件集的數據類型通常是作爲一個過濾器,以包括和排除匹配特定模式的文件。

例如:

<fileset dir="${src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Stub*"/>

在上面的例子中的src屬性指向項目的源文件夾。

在上面的例子中,文件集的選擇,除了那些包含在其中單詞「Stub」源文件夾中的所有java文件。在大小寫敏感的過濾器應用到文件集這意味着名爲Samplestub.java一個文件不會被排除在文件集

模式集

一個模式集是一個模式,可以非常方便地篩選基於某種模式的文件或文件夾。可以使用下面的元字符來創建模式。

  • ? - 只匹配一個字符
  • * - 匹配零個或多個字符
  • ** - 匹配零個或多個目錄遞歸

下面的例子應該給一個模式集的用法的想法。

<patternset id="java.files.without.stubs"> <include name="src/**/*.java"/> <exclude name="src/**/*Stub*"/>

patternset 可以用一個文件集重用如下:

<fileset dir="${src}" casesensitive="yes"> <patternset refid="java.files.without.stubs"/>

文件列表

在文件列表的數據類型類似設置,除了在文件列表中包含顯式命名的文件列表,不支持通配符的文件

文件列表和文件組的數據類型之間的另一個主要區別是,在文件列表的數據類型可應用於可能會或可能還不存在的文件。

以下是文件列表的數據類型的一個例子

<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"/>

在上面的例子中webapp.src.folder屬性指向該項目的Web應用程序的源文件夾。

過濾器集

使用與複製任務篩選器集的數據類型,你可以匹配一個替代值的模式,所有的文件替換一定的文本。

一個常見的例子是附加版本號的發行說明文件,如下面的示例所示

<copy todir="${output.dir}"> <fileset dir="${releasenotes.dir}" includes="**/*.txt"/> <filter token="VERSION" value="${current.version}"/>

在上面的例子中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"/>

在上面的例子中env.J2EE_HOME屬性指向環境變量J2EE_HOME。

在上面的例子中的j2ee.jar屬性指向在J2EE基礎文件夾J2EE的jar文件的名稱。