鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 數(shù)據(jù)類型
生成 WAR 文件
JUnit 集成
環(huán)境搭建
Eclipse 集成
部署應(yīng)用
屬性任務(wù)
擴展 Ant
?# 執(zhí)行 Java 代碼
構(gòu)建項目
構(gòu)建文件
數(shù)據(jù)類型
生成 JAR 文件
生成文檔
屬性文件
封裝應(yīng)用
介紹

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

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

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

文件集

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

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

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

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

模式集合

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

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

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

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

該模式集合能夠通過一個類似于下述的文件集進(jìn)行重用:

<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ù)類型與文件集相類似,除了以下幾處不同:

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

讓我們來看一個下述的關(guān)于文件列表數(shù)據(jù)類型的例子。在這個例子中,屬性 webapp.src.folder 指向該項目中的 Web 應(yīng)用的源文件夾。

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

過濾器集合

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

一個常見的例子就是對一個已經(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 指向項目的當(dāng)前版本文件夾。
  • 拷貝任務(wù),顧名思義,是用來將文件從一個地址拷貝到另一個地址。

路徑

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

類路徑被設(shè)置為項目中 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 基礎(chǔ)文件夾下面的名為 J2EE jar 的文件。
上一篇:構(gòu)建文件下一篇:擴展 Ant