調整文字檔以符合當地慣例。
可以使用 includes、includesfile、excludes、excludesfile 和 defaultexcludes 屬性來精選要調整的檔案組。透過 includes 或 includesfile 屬性提供的樣式會指定要包含的檔案。透過 exclude 或 excludesfile 屬性提供的樣式會指定要排除的檔案。此外,可以使用 defaultexcludes 屬性指定預設排除。有關檔案包含/排除樣式及其用法的詳細資訊,請參閱 基於目錄的任務 部分。
此任務會形成一個隱含的 FileSet,並支援 <fileset>
的大多數屬性(dir 會變成 srcdir),以及巢狀的 <include>
、<exclude>
和 <patternset>
元素。
只有在輸出檔案是新檔案,或是與現有檔案不同時,才會寫入輸出檔案。這可以防止基於未變更且已由此任務重新產生的檔案進行虛假的重新建置。為了評估檔案是否已變更,此任務會在 暫存目錄 中建立原始檔的預處理版本。
自 Apache Ant 1.7 起,此任務可以在 filterchain 中使用。
屬性 | 說明 | 必要 | |
---|---|---|---|
作為任務 | 作為篩選器 | ||
srcDir | 要修正的檔案所在位置。 | 其中之一 | 不適用 |
file | 要修正的單一檔案名稱。自 Ant 1.7 起 | ||
destDir | 要放置已修正檔案的位置。 | 否;預設為 srcDir(取代原始檔案) | |
includes | 必須包含的檔案樣式,以逗號或空格分隔。 | 否;預設為全部(**) |
|
includesfile | 檔案名稱。此檔案的每一行都會視為包含樣式。 | 否 | |
excludes | 必須排除的檔案樣式,以逗號或空格分隔。 | 否;預設為預設排除,或在 defaultexcludes 為 no時為無 |
|
excludesfile | 檔案名稱。此檔案的每一行都被視為排除模式。 | 否 | |
defaultexcludes | 表示是否應使用預設排除 (yes|no)。 |
否;預設為 yes |
|
encoding | 檔案的編碼。 | 否;預設為 JVM 預設字元編碼 | |
outputencoding | 寫入檔案時使用的編碼。自 Ant 1.7 起 | 否;若已設定,則預設為 encoding;否則預設為 JVM 預設字元編碼 | |
preservelastmodified | 是否保留原始檔案的最後修改日期。自 Ant 1.6.3 起 | 否;預設為 false |
|
eol | 指定如何處理行尾 (EOL) 字元。EOL 字元為 CR、LF 和 CRLF 組合。此屬性的有效值為
這是指定 EOL 的建議方法。cr 屬性(見下文)現已不建議使用。 注意:識別一個特殊情況。三個字元 CR-CR-LF 被視為單一 EOL。除非此屬性指定為 |
否;預設為特定於平台:Unix 平台(包括 Mac OS X/macOS)為 lf,基於 DOS 的系統(包括 Windows)為 crlf,OS X 以外的 Mac 環境為 cr |
|
cr | 已不建議使用。指定如何處理行尾 (EOL) 的 CR 字元。此屬性的有效值為
注意:識別一個特殊情況。三個字元 CR-CR-LF 被視為單一 EOL。除非此屬性指定為 |
否;預設為特定於平台:Unix 平台為 remove,基於 DOS 的系統(包括 Windows)為 add |
|
javafiles | 僅與 tab 屬性(見下文)搭配使用,此布林屬性表示檔案集是否為 Java 原始碼檔案集 (yes|no)。請參閱 tab 區段中的附註。 |
否;預設為 no |
|
tab | 指定如何處理 tab 字元。此屬性的有效值為
注意:當屬性 javafiles(見上文)為 注意:此版本與前一版本在處理行尾空白時存在不相容性。此版本不會移除行尾空白。 |
否;預設為 asis |
|
tablength | TAB 字元間隔。有效值介於 2和 80(含)之間。 |
否;預設為 8 |
|
eof | 指定如何處理 DOS 檔案結尾(控制碼 Z)字元。此屬性的有效值為
|
否;預設為特定於平台:Unix 平台為 remove,DOS 系統(包括 Windows)為 asis |
|
fixlast | 是否在已處理檔案的最後一行加上遺失的 EOL。 如果 eof 為 asis,則忽略。 自 Ant 1.6.1 起 |
否;預設為 true |
將 shell 指令碼中的 EOL 取代為 LF 字元,並移除 EOF 字元。保留 tab 和空格。
<fixcrlf srcdir="${src}" includes="**/*.sh" eol="lf" eof="remove"/>
將批次檔中的所有 EOL 取代為 cr-lf 對。保留 tab 和空格。如果在 DOS 系統上執行,則保留 EOF 字元;如果在 Unix 系統上執行,則移除 EOF 字元。
<fixcrlf srcdir="${src}" includes="**/*.bat" eol="crlf"/>
根據本機作業系統慣例設定 EOL,並將空格和 tab 序列轉換為最少的空格和 tab 組合,以保留行內的間距。tab 設定為 8 個字元間隔。如果在 DOS 系統上執行,則保留 EOF 字元;如果在 Unix 系統上執行,則移除 EOF 字元。許多版本的 make 需要在命令前加上 tab。
<fixcrlf srcdir="${src}" includes="**/Makefile" tab="add"/>
將包含的 Java 原始檔中的所有 EOL 轉換為單一 LF。將字串或字元常數中的 tab 字元(假設 tab 寬度為 3)以外的所有 tab 字元替換為空格。如果在 Unix 系統上執行,則移除檔案結尾的任何 CTRL-Z EOF 字元。在 DOS/Windows 上,任何此類 EOF 字元都將保持不變。
<fixcrlf srcdir="${src}" includes="**/*.java" tab="remove" tablength="3" eol="lf" javafiles="yes"/>
根據本機作業系統慣例設定 EOL,並將所有 tab 轉換為空白,假設 tab 寬度為 8。如果在 DOS 系統上執行,EOF 字元會保留,如果在 Unix 系統上執行,則會移除。您永遠不知道使用者會使用哪個編輯器來瀏覽 README。
<fixcrlf srcdir="${src}" includes="**/README*" tab="remove"/>