Tar

API 文件Tar

組裝 TAR 封存檔。

屬性

屬性描述
archiveAppendix

封存檔名稱的附加部分 (若有)。

archiveBaseName

封存檔的基本名稱。

archiveClassifier

封存檔名稱的分類器部分 (若有)。

archiveExtension

封存檔名稱的副檔名部分。

archiveFile

建構封存檔的 RegularFile。路徑僅為 destinationDirectory 加上 archiveFileName

archiveFileName

封存檔名稱。如果名稱未明確設定,則名稱的模式為:[archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]

archiveVersion

封存檔名稱的版本部分。

caseSensitive

指定是否應使用區分大小寫的模式比對。

compression

用於此封存檔的壓縮方式。

destinationDirectory

將放置封存檔的目錄。

dirPermissions

用於查詢和配置目錄存取權限的屬性。如果屬性未設定值,則表示保留現有權限。這些權限是否實際應用取決於複製動作實作。詳細資訊請參閱 ConfigurableFilePermissions

duplicatesStrategy

嘗試將多個檔案複製到相同目的地時要使用的策略。

excludes

排除模式的集合。

filePermissions

用於查詢和配置檔案存取權限的屬性。如果屬性未設定值,則表示保留現有權限。這些權限是否實際應用取決於複製動作實作。詳細資訊請參閱 ConfigurableFilePermissions

includeEmptyDirs

告知是否將空目標目錄包含在複製中。

includes

包含模式的集合。

preserveFileTimestamps

指定是否應在封存檔中保留檔案時間戳記。

reproducibleFileOrder

指定從目錄讀取檔案時是否強制執行可重現的檔案順序。

source

此 Task 的來源檔案。

方法

方法描述
eachFile(closure)

新增要應用於每個檔案的動作,因為它即將複製到其目的地。給定的 closure 會以 FileCopyDetails 作為其參數呼叫。動作會依新增順序執行,並從父規範繼承。

eachFile(action)

新增要應用於每個檔案的動作,因為它即將複製到其目的地。動作可以變更檔案的目的地路徑、篩選檔案的內容,或將檔案完全排除在結果之外。動作會依新增順序執行,並從父規範繼承。

exclude(excludeSpec)

新增排除規範。此方法可以多次呼叫以附加新規範。給定的 closure 會傳遞 FileTreeElement 作為其參數。closure 應傳回 true 或 false。範例

exclude(excludes)

新增 ANT 樣式的排除模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

exclude(excludes)

新增 ANT 樣式的排除模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

exclude(excludeSpec)

新增排除規範。此方法可以多次呼叫以附加新規範。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

expand(properties)

在複製每個檔案時展開屬性參考。更具體地說,每個檔案都使用 Groovy 的 SimpleTemplateEngine 進行轉換。這表示您可以在檔案中使用簡單的屬性參考,例如 $property${property}。您也可以在檔案中包含任意 Groovy 程式碼,例如 ${version ?: 'unknown'}${classpath*.name.join(' ')}

expand(properties, action)

在複製每個檔案時展開屬性參考。更具體地說,每個檔案都使用 Groovy 的 SimpleTemplateEngine 進行轉換。這表示您可以在檔案中使用簡單的屬性參考,例如 $property${property}。您也可以在檔案中包含任意 Groovy 程式碼,例如 ${version ?: 'unknown'}${classpath*.name.join(' ')}。可以使用提供的動作配置範本引擎。

filesMatching(patterns, action)

為路徑符合任何指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

filesMatching(pattern, action)

為路徑符合指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

filesNotMatching(patterns, action)

為路徑不符合任何指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

filesNotMatching(pattern, action)

為路徑不符合指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

filter(closure)

根據提供的 closure 新增內容篩選器。Closure 將以每一行 (去除行尾) 呼叫,並且應傳回要取代該行的 String,或傳回 null 以移除該行。如果移除每一行,則結果將會是空檔案,而不是不存在的檔案。

filter(filterType)

新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 java.io.FilterReader。包含 org.apache.tools.ant.filters.* 以存取所有標準 Ant 篩選器。

filter(properties, filterType)

新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 java.io.FilterReader。包含 org.apache.tools.ant.filters.* 以存取所有標準 Ant 篩選器。

filter(transformer)

根據提供的轉換器新增內容篩選器。Closure 將以每一行 (去除行尾) 呼叫,並且應傳回要取代該行的 String,或傳回 null 以移除該行。如果移除每一行,則結果將會是空檔案,而不是不存在的檔案。

from(sourcePath, c)

指定複製的來源檔案或目錄,並建立子 CopySourceSpec。給定的來源路徑會根據 Project.files(java.lang.Object[]) 進行評估。

from(sourcePath, configureAction)

指定複製的來源檔案或目錄,並建立子 CopySpec。給定的來源路徑會根據 Project.files(java.lang.Object[]) 進行評估。

from(sourcePaths)

指定複製的來源檔案或目錄。給定的路徑會根據 Project.files(java.lang.Object[]) 進行評估。

include(includeSpec)

新增包含規範。此方法可以多次呼叫以附加新規範。給定的 closure 會傳遞 FileTreeElement 作為其參數。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。

include(includes)

新增 ANT 樣式的包含模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式才能進行處理。

include(includes)

新增 ANT 樣式的包含模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式才能進行處理。

include(includeSpec)

新增包含規範。此方法可以多次呼叫以附加新規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。

into(destPath)

指定檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

into(destPath, configureClosure)

建立並配置子 CopySpec,其中包含檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

into(destPath, copySpec)

建立並配置子 CopySpec,其中包含檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

rename(closure)

重新命名來源檔案。closure 將以單一參數 (檔案名稱) 呼叫。closure 應傳回具有新目標名稱的 String 物件。closure 可以傳回 null,在這種情況下將使用原始名稱。

rename(sourceRegEx, replaceWith)

根據正則表達式重新命名檔案。使用 java.util.regex 類型的正則表達式。請注意,取代字串應使用 '$1' 語法來參考來源正則表達式中的擷取群組。不符合來源正則表達式的檔案將以原始名稱複製。

rename(sourceRegEx, replaceWith)

根據正則表達式重新命名檔案。請參閱 CopyProcessingSpec.rename(java.lang.String, java.lang.String)

rename(renamer)

重新命名來源檔案。function 將以單一參數 (檔案名稱) 呼叫。function 應傳回新的目標名稱。function 可以傳回 null,在這種情況下將使用原始名稱。

with(sourceSpecs)

將給定的規範新增為此規範的子規範。

腳本區塊

沒有腳本區塊

屬性詳細資訊

Property<String> archiveAppendix

封存檔名稱的附加部分 (若有)。

預設為 java 外掛
""

Property<String> archiveBaseName

封存檔的基本名稱。

預設為 java 外掛
project.archivesBaseName

Property<String> archiveClassifier

封存檔名稱的分類器部分 (若有)。

預設為 java 外掛
""

Property<String> archiveExtension

封存檔名稱的副檔名部分。

Provider<RegularFile> archiveFile

建構封存檔的 RegularFile。路徑僅為 destinationDirectory 加上 archiveFileName

預設為 java 外掛
${destinationDirectory}/${archiveFileName}

Property<String> archiveFileName

封存檔名稱。如果名稱未明確設定,則名稱的模式為:[archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]

預設為 java 外掛
${archiveBaseName}-${archiveAppendix}-${archiveVersion}-${archiveClassifier}.${archiveExtension}

Property<String> archiveVersion

封存檔名稱的版本部分。

預設為 java 外掛
project.version

boolean caseSensitive

指定是否應使用區分大小寫的模式比對。

預設為 java 外掛
true

Compression compression

用於此封存檔的壓縮方式。

預設為 java 外掛
Compression.NONE

DirectoryProperty destinationDirectory

將放置封存檔的目錄。

預設為 java 外掛
project.distsDir

用於查詢和配置目錄存取權限的屬性。如果屬性未設定值,則表示保留現有權限。這些權限是否實際應用取決於複製動作實作。詳細資訊請參閱 ConfigurableFilePermissions

預設為 java 外掛
null

DuplicatesStrategy duplicatesStrategy

嘗試將多個檔案複製到相同目的地時要使用的策略。

可以使用列舉值的區分大小寫字串設定值 (例如,'exclude' 代表 DuplicatesStrategy.EXCLUDE)。

可以使用 CopySpec.eachFile(org.gradle.api.Action)CopySpec.filesMatching(java.lang.String, org.gradle.api.Action) 覆寫個別檔案的此策略。

預設為 java 外掛
DuplicatesStrategy.INHERIT

Set<String> excludes

排除模式的集合。

預設為 java 外掛
[]

用於查詢和配置檔案存取權限的屬性。如果屬性未設定值,則表示保留現有權限。這些權限是否實際應用取決於複製動作實作。詳細資訊請參閱 ConfigurableFilePermissions

預設為 java 外掛
null

boolean includeEmptyDirs

告知是否將空目標目錄包含在複製中。

預設為 java 外掛
true

Set<String> includes

包含模式的集合。

預設為 java 外掛
[]

boolean preserveFileTimestamps

指定是否應在封存檔中保留檔案時間戳記。

如果 false,這可確保封存檔項目在不同機器、Java 版本和作業系統之間的建置中具有相同的時間。

預設為 java 外掛
true

boolean reproducibleFileOrder

指定從目錄讀取檔案時是否強制執行可重現的檔案順序。

然後 Gradle 將以可重現的順序走訪磁碟上屬於此封存檔一部分的目錄,而與檔案系統和作業系統無關。這有助於 Gradle 可靠地產生位元組對位元組可重現的封存檔。

預設為 java 外掛
false

FileCollection source (唯讀)

此 Task 的來源檔案。

預設為 java 外掛
[]

方法詳細資訊

AbstractCopyTask eachFile(Closure closure)

新增要應用於每個檔案的動作,因為它即將複製到其目的地。給定的 closure 會以 FileCopyDetails 作為其參數呼叫。動作會依新增順序執行,並從父規範繼承。

AbstractCopyTask eachFile(Action<? super FileCopyDetails> action)

新增要應用於每個檔案的動作,因為它即將複製到其目的地。動作可以變更檔案的目的地路徑、篩選檔案的內容,或將檔案完全排除在結果之外。動作會依新增順序執行,並從父規範繼承。

AbstractCopyTask exclude(Closure excludeSpec)

新增排除規範。此方法可以多次呼叫以附加新規範。給定的 closure 會傳遞 FileTreeElement 作為其參數。closure 應傳回 true 或 false。範例

copySpec {
  from 'source'
  into 'destination'
  //an example of excluding files from certain configuration:
  exclude { it.file in configurations.someConf.files }
}

如果沒有提供排除規則,則不會排除任何檔案。如果提供了排除規則,則檔案必須不符合任何排除模式才能被處理。

AbstractCopyTask exclude(Iterable<String> excludes)

新增 ANT 樣式的排除模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

AbstractCopyTask exclude(String... excludes)

新增 ANT 樣式的排除模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

AbstractCopyTask exclude(Spec<FileTreeElement> excludeSpec)

新增排除規範。此方法可以多次呼叫以附加新規範。如果未提供排除項,則不會排除任何檔案。如果提供排除項,則檔案不得符合任何排除模式才能進行處理。

AbstractCopyTask expand(Map<String, ?> properties)

在複製每個檔案時展開屬性參考。更具體地說,每個檔案都使用 Groovy 的 SimpleTemplateEngine 進行轉換。這表示您可以在檔案中使用簡單的屬性參考,例如 $property${property}。您也可以在檔案中包含任意 Groovy 程式碼,例如 ${version ?: 'unknown'}${classpath*.name.join(' ')}

請注意,所有跳脫序列(\n\t\\ 等)都會轉換為它們所代表的符號,例如,\n 會變成換行符號。如果這不是您所希望的行為,則應使用 ContentFilterable.expand(java.util.Map, org.gradle.api.Action) 來停用此行為。

AbstractCopyTask expand(Map<String, ?> properties, Action<? super ExpandDetails> action)

在複製每個檔案時展開屬性參考。更具體地說,每個檔案都使用 Groovy 的 SimpleTemplateEngine 進行轉換。這表示您可以在檔案中使用簡單的屬性參考,例如 $property${property}。您也可以在檔案中包含任意 Groovy 程式碼,例如 ${version ?: 'unknown'}${classpath*.name.join(' ')}。可以使用提供的動作配置範本引擎。

請注意,預設情況下,所有跳脫序列(\n\t\\ 等)都會轉換為它們所代表的符號,例如,\n 會變成換行符號。此行為由 ExpandDetails.getEscapeBackslash() 屬性控制。應將其設定為 true 以停用跳脫序列轉換。

 expand(one: '1', two: 2) {
     escapeBackslash = true
 }

AbstractCopyTask filesMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)

為路徑符合任何指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

AbstractCopyTask filesMatching(String pattern, Action<? super FileCopyDetails> action)

為路徑符合指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

AbstractCopyTask filesNotMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)

為路徑不符合任何指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

AbstractCopyTask filesNotMatching(String pattern, Action<? super FileCopyDetails> action)

為路徑不符合指定 Ant 樣式模式的每個檔案配置 FileCopyDetails。這相當於使用 eachFile() 並根據檔案的路徑選擇性地套用配置。

AbstractCopyTask filter(Closure closure)

根據提供的 closure 新增內容篩選器。Closure 將以每一行 (去除行尾) 呼叫,並且應傳回要取代該行的 String,或傳回 null 以移除該行。如果移除每一行,則結果將會是空檔案,而不是不存在的檔案。

AbstractCopyTask filter(Class<? extends FilterReader> filterType)

新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 java.io.FilterReader。包含 org.apache.tools.ant.filters.* 以存取所有標準 Ant 篩選器。

範例

   filter(StripJavaComments)
   filter(com.mycompany.project.CustomFilter)

AbstractCopyTask filter(Map<String, ?> properties, Class<? extends FilterReader> filterType)

新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 java.io.FilterReader。包含 org.apache.tools.ant.filters.* 以存取所有標準 Ant 篩選器。

可以使用 Groovy 映射語法指定篩選器屬性。

範例

   filter(HeadFilter, lines:25, skip:2)
   filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])

根據提供的轉換器新增內容篩選器。Closure 將以每一行 (去除行尾) 呼叫,並且應傳回要取代該行的 String,或傳回 null 以移除該行。如果移除每一行,則結果將會是空檔案,而不是不存在的檔案。

AbstractCopyTask from(Object sourcePath, Closure c)

指定複製的來源檔案或目錄,並建立子 CopySourceSpec。給定的來源路徑會根據 Project.files(java.lang.Object[]) 進行評估。

AbstractCopyTask from(Object sourcePath, Action<? super CopySpec> configureAction)

指定複製的來源檔案或目錄,並建立子 CopySpec。給定的來源路徑會根據 Project.files(java.lang.Object[]) 進行評估。

AbstractCopyTask from(Object... sourcePaths)

指定複製的來源檔案或目錄。給定的路徑會根據 Project.files(java.lang.Object[]) 進行評估。

AbstractCopyTask include(Closure includeSpec)

新增包含規範。此方法可以多次呼叫以附加新規範。給定的 closure 會傳遞 FileTreeElement 作為其參數。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。

AbstractCopyTask include(Iterable<String> includes)

新增 ANT 樣式的包含模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式才能進行處理。

AbstractCopyTask include(String... includes)

新增 ANT 樣式的包含模式。此方法可以多次呼叫以附加新模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式才能進行處理。

AbstractCopyTask include(Spec<FileTreeElement> includeSpec)

新增包含規範。此方法可以多次呼叫以附加新規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。

指定檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

AbstractArchiveTask into(Object destPath, Closure configureClosure)

建立並配置子 CopySpec,其中包含檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

CopySpec into(Object destPath, Action<? super CopySpec> copySpec)

建立並配置子 CopySpec,其中包含檔案在封存檔*內部*的目的地目錄。目的地會根據 Project.file(java.lang.Object) 進行評估。請勿與 AbstractArchiveTask.getDestinationDirectory() 混淆,後者指定封存檔的輸出目錄。

AbstractCopyTask rename(Closure closure)

重新命名來源檔案。closure 將以單一參數 (檔案名稱) 呼叫。closure 應傳回具有新目標名稱的 String 物件。closure 可以傳回 null,在這種情況下將使用原始名稱。

AbstractCopyTask rename(String sourceRegEx, String replaceWith)

根據正則表達式重新命名檔案。使用 java.util.regex 類型的正則表達式。請注意,取代字串應使用 '$1' 語法來參考來源正則表達式中的擷取群組。不符合來源正則表達式的檔案將以原始名稱複製。

範例

rename '(.*)_OEM_BLUE_(.*)', '$1$2'

會將檔案 'style_OEM_BLUE_.css' 映射到 'style.css'

AbstractCopyTask rename(Pattern sourceRegEx, String replaceWith)

根據正則表達式重新命名檔案。請參閱 CopyProcessingSpec.rename(java.lang.String, java.lang.String)

重新命名來源檔案。function 將以單一參數 (檔案名稱) 呼叫。function 應傳回新的目標名稱。function 可以傳回 null,在這種情況下將使用原始名稱。

CopySpec with(CopySpec... sourceSpecs)

將給定的規範新增為此規範的子規範。

def contentSpec = copySpec {
  from("content") {
    include "**/*.txt"
  }
}

task copy(type: Copy) {
  into "$buildDir/copy"
  with contentSpec
}