Ant - 資料型別



Ant 提供了許多預定義的資料型別。不要將“資料型別”一詞與程式語言中可用的資料型別混淆。相反,可以將它們視為已內置於產品中的一組服務。

Ant 中的資料型別

Apache Ant 提供以下資料型別。

檔案集 (Fileset)

檔案集資料型別表示檔案集合。它用作過濾器,用於包含或排除與特定模式匹配的檔案。

例如,請參考以下程式碼。此處,src 屬性指向專案的原始檔夾。

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

檔案集選擇原始檔夾中的所有 .java 檔案,但包含“Stub”一詞的檔案除外。區分大小寫的過濾器應用於檔案集,這意味著名為 Samplestub.java 的檔案不會從檔案集中排除。

模式集 (Pattern set)

模式集是一種模式,允許根據某些模式輕鬆過濾檔案或資料夾。可以使用以下元字元建立模式:-

  • ? - 僅匹配一個字元。

  • * - 匹配零個或多個字元。

  • ** - 遞迴匹配零個或多個目錄。

以下示例描述了模式集的使用。

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

檔案列表 (File list)

檔案列表資料型別類似於檔案集,但存在以下區別:-

  • 它包含顯式命名的檔案列表,並且不支援萬用字元。

  • 此資料型別可以應用於現有檔案或不存在的檔案。

讓我們看看檔案列表資料型別的以下示例。此處,屬性webapp.src.folder指向專案的 Web 應用程式原始檔夾。

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

過濾器集 (Filter set)

透過將過濾器集資料型別與複製任務一起使用,您可以將所有與模式匹配的檔案中的某些文字替換為替換值。

一個常見的示例是將版本號附加到發行說明檔案,如以下程式碼所示。

<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)

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 檔案的名稱。

廣告