Ant 數(shù)據(jù)類型

2022-07-19 10:15 更新

Ant 提供一些預定義的數(shù)據(jù)類型。不要將術語“數(shù)據(jù)類型”和那些在編程語言中可用的數(shù)據(jù)類型相混淆,而是將他們視作一組已經(jīng)在產(chǎn)品中配置好的服務。

下述的數(shù)據(jù)類型是由 Apache Ant 提供的。

文件集

文件集的數(shù)據(jù)類型代表了一個文件集合。它被當作一個過濾器,用來包括或移除匹配某種模式的文件。

例如,參考下面的代碼。這里,src 屬性指向項目的源文件夾。

文件集選擇源文件夾中所有的 .java 文件,除了那些包含有 'Stub' 單詞的文件。能區(qū)分大小寫的過濾器被應用到文件集上,這意味著名為 Samplestub.java 的文件將不會被排除在文件集之外。

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

模式集合

一個模式集合指的是一種模式,基于這種模式,能夠很容易地過濾文件或者文件夾。模式可以使用下述的元字符進行創(chuàng)建。

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

下面的例子演示了模式集合的使用。

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

文件列表

文件列表數(shù)據(jù)類型與文件集相類似,除了以下幾處不同:

  • 文件列表包含明確命名的文件的列表,同時其不支持通配符。
  • 文件列表數(shù)據(jù)類型能夠被應用于現(xiàn)有的或者還不存在的文件中。

讓我們來看一個下述的關于文件列表數(shù)據(jù)類型的例子。在這個例子中,屬性 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>

過濾器集合

使用一個過濾器集合數(shù)據(jù)類型與拷貝任務,你可以在所有文件中使用一個替換值來替換掉一些與模式相匹配的文本。

一個常見的例子就是對一個已經(jīng)發(fā)行的說明文件追加版本號,代碼如下:

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

在這段代碼中:

  • 屬性 output.dir 指向項目的輸出文件夾。
  • 屬性 releasenotes.dir 指向項目的發(fā)行說明文件夾。
  • 屬性 current.version 指向項目的當前版本文件夾。
  • 拷貝任務,顧名思義,是用來將文件從一個地址拷貝到另一個地址。

路徑

path 數(shù)據(jù)類型通常被用來表示一個類路徑。各個路徑之間用分號或者冒號隔開。然而,這些字符在運行時被替代為執(zhí)行系統(tǒng)的路徑分隔符。

類路徑被設置為項目中 jar 文件和類文件的列表,如下面例子所示:

<path id="build.classpath.jar">
   <pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/>
   <fileset dir="lib">
      <include name="*/.jar"/>
   </fileset>
</path>

在這段代碼中:

  • 屬性 env.J2EE_HOME 指向環(huán)境變量 J2EE_HOME 。
  • 屬性 j2ee.jar 指向在 J2EE 基礎文件夾下面的名為 J2EE jar 的文件。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號