API 文件 | Ear (Ear) |
---|
組裝 EAR 歸檔檔。
屬性 | 描述 |
archiveAppendix (歸檔檔後綴) | 歸檔檔名稱的後綴部分,如果有的話。 |
archiveBaseName (歸檔檔基本名稱) | 歸檔檔的基本名稱。 |
archiveClassifier (歸檔檔分類器) | 歸檔檔名稱的分類器部分,如果有的話。 |
archiveExtension (歸檔檔副檔名) | 歸檔檔名稱的副檔名部分。 |
archiveFile (歸檔檔檔案) | 建構歸檔檔的 |
archiveFileName (歸檔檔檔案名稱) | 歸檔檔名稱。如果名稱尚未明確設定,則名稱的模式為: |
archiveVersion (歸檔檔版本) | 歸檔檔名稱的版本部分。 |
caseSensitive (區分大小寫) | 指定是否應使用區分大小寫的模式比對。 |
destinationDirectory (目標目錄) | 將放置歸檔檔的目錄。 |
dirPermissions (目錄權限) | 用於查詢和配置目錄存取權限的屬性。如果該屬性未設定值,則表示保留現有的權限。這些權限是否實際應用取決於複製動作的實作。詳細資訊請參閱 |
duplicatesStrategy (重複策略) | 嘗試將多個檔案複製到相同目標時要使用的策略。 |
entryCompression (條目壓縮) | 歸檔檔條目的壓縮等級。如果設定為 |
excludes (排除) | 排除模式的集合。 |
filePermissions (檔案權限) | 用於查詢和配置檔案存取權限的屬性。如果該屬性未設定值,則表示保留現有的權限。這些權限是否實際應用取決於複製動作的實作。詳細資訊請參閱 |
generateDeploymentDescriptor (產生部署描述符) | 是否應產生 deploymentDescriptor? |
includeEmptyDirs (包含空目錄) | 告知是否將在複製中包含空的目標目錄。 |
includes (包含) | 包含模式的集合。 |
libDirName (lib 目錄名稱) | EAR 檔案中函式庫目錄的名稱。預設值為 "lib"。 |
manifest (Manifest) | 此 JAR 歸檔檔的 manifest。 |
metadataCharset (元數據字元集) | 用於編碼 JAR 元數據(如檔案名稱)的字元集。預設為 UTF-8。您可以變更此屬性,但不建議這樣做,因為 JVM 預期 JAR 元數據使用 UTF-8 編碼 |
preserveFileTimestamps (保留檔案時間戳記) | 指定是否應在歸檔檔中保留檔案時間戳記。 |
reproducibleFileOrder (可重現的檔案順序) | 指定在從目錄讀取檔案時是否強制執行可重現的檔案順序。 |
source (來源) | 此任務的來源檔案。 |
zip64 (zip64) | zip 是否可以包含超過 65535 個檔案和/或支援大於 4GB 的檔案。 |
方法 | 描述 |
deploymentDescriptor(configureClosure) | 配置此 EAR 歸檔檔的部署描述符。 |
deploymentDescriptor(configureAction) | 配置此 EAR 歸檔檔的部署描述符。 |
eachFile(closure) | 新增一個動作,以應用於每個即將複製到其目標位置的檔案。給定的 closure 會使用 |
eachFile(action) | 新增一個動作,以應用於每個即將複製到其目標位置的檔案。動作可以變更檔案的目標路徑、篩選檔案的內容,或完全從結果中排除該檔案。動作會依新增順序執行,並從父規範繼承。 |
exclude(excludeSpec) | 新增排除規範。可以多次呼叫此方法以附加新的規範。給定的 closure 會傳遞 |
exclude(excludes) | 新增 ANT 樣式的排除模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。 |
exclude(excludes) | 新增 ANT 樣式的排除模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。 |
exclude(excludeSpec) | 新增排除規範。可以多次呼叫此方法以附加新的規範。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。 |
expand(properties) | 在複製每個檔案時展開屬性參考。更具體來說,每個檔案都使用 Groovy 的 |
expand(properties, action) | 在複製每個檔案時展開屬性參考。更具體來說,每個檔案都使用 Groovy 的 |
filesMatching(patterns, action) | 為每個路徑符合任何指定 Ant 樣式模式的檔案配置 |
filesMatching(pattern, action) | 為每個路徑符合指定 Ant 樣式模式的檔案配置 |
filesNotMatching(patterns, action) | 為每個路徑不符合任何指定 Ant 樣式模式的檔案配置 |
filesNotMatching(pattern, action) | 為每個路徑不符合指定 Ant 樣式模式的檔案配置 |
filter(closure) | 根據提供的 closure 新增內容篩選器。將使用每一行(去除行尾符號)呼叫 Closure,並應傳回字串以取代該行或 |
filter(filterType) | 新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 |
filter(properties, filterType) | 新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 |
filter(transformer) | 根據提供的 transformer 新增內容篩選器。將使用每一行(去除行尾符號)呼叫 Closure,並應傳回字串以取代該行或 |
from(sourcePath, c) | 指定複製的來源檔案或目錄,並建立子 |
from(sourcePath, configureAction) | 指定複製的來源檔案或目錄,並建立子 |
from(sourcePaths) | 指定複製的來源檔案或目錄。給定的路徑會根據 |
include(includeSpec) | 新增包含規範。可以多次呼叫此方法以附加新的規範。給定的 closure 會傳遞 |
include(includes) | 新增 ANT 樣式的包含模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式才能進行處理。 |
include(includes) | 新增 ANT 樣式的包含模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式才能進行處理。 |
include(includeSpec) | 新增包含規範。可以多次呼叫此方法以附加新的規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。 |
into(destPath) | 指定檔案在歸檔檔 *內部* 的目標目錄。目標目錄會根據 |
into(destPath, configureClosure) | 建立並配置子 |
into(destPath, copySpec) | 建立並配置子 |
lib(configureClosure) | 新增要包含在 EAR 歸檔檔 'lib' 目錄中的依賴函式庫。 |
lib(configureAction) | 新增要包含在 EAR 歸檔檔 'lib' 目錄中的依賴函式庫。 |
manifest(configureClosure) | 配置此 JAR 歸檔檔的 manifest。 |
manifest(configureAction) | 配置此 JAR 歸檔檔的 manifest。 |
metaInf(configureClosure) | 將內容新增至此 JAR 歸檔檔的 META-INF 目錄。 |
metaInf(configureAction) | 將內容新增至此 JAR 歸檔檔的 META-INF 目錄。 |
rename(closure) | 重新命名來源檔案。將使用單一參數(檔案名稱)呼叫 closure。closure 應傳回包含新目標名稱的字串物件。closure 可以傳回 null,在這種情況下將使用原始名稱。 |
rename(sourceRegEx, replaceWith) | 根據正則表達式重新命名檔案。使用 java.util.regex 類型的正則表達式。請注意,取代字串應使用 '$1' 語法來參考來源正則表達式中的捕獲群組。不符合來源正則表達式的檔案將使用原始名稱複製。 |
rename(sourceRegEx, replaceWith) | 根據正則表達式重新命名檔案。請參閱 |
rename(renamer) | 重新命名來源檔案。將使用單一參數(檔案名稱)呼叫函數。函數應傳回新的目標名稱。函數可以傳回 null,在這種情況下將使用原始名稱。 |
with(sourceSpecs) | 將給定的規範新增為此規範的子項。 |
Provider
<RegularFile
>
archiveFile
Provider
<RegularFile
>建構歸檔檔的 RegularFile
。路徑僅為 destinationDirectory
加上 archiveFileName
。
- 使用
ear
外掛的預設值 ${destinationDirectory}
/${archiveFileName}
歸檔檔名稱。如果名稱尚未明確設定,則名稱的模式為:[archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
- 使用
ear
外掛的預設值 ${archiveBaseName}
-${archiveAppendix}
-${archiveVersion}
-${archiveClassifier}
.${archiveExtension}
Property
<ConfigurableFilePermissions
>
dirPermissions
Property
<ConfigurableFilePermissions
>用於查詢和配置目錄存取權限的屬性。如果該屬性未設定值,則表示保留現有的權限。這些權限是否實際應用取決於複製動作的實作。詳細資訊請參閱 ConfigurableFilePermissions
。
- 使用
ear
外掛的預設值 null
DuplicatesStrategy
duplicatesStrategy
嘗試將多個檔案複製到相同目標時要使用的策略。
可以使用不區分大小寫的字串來設定值,該字串為列舉值(例如 'exclude'
代表 DuplicatesStrategy.EXCLUDE
)。
可以使用 CopySpec.eachFile(org.gradle.api.Action)
或 CopySpec.filesMatching(java.lang.String, org.gradle.api.Action)
來覆寫個別檔案的此策略。
- 使用
ear
外掛的預設值 DuplicatesStrategy.INHERIT
ZipEntryCompression
entryCompression
歸檔檔條目的壓縮等級。如果設定為 ZipEntryCompression.DEFLATED
(預設值),則每個條目都使用 DEFLATE 演算法壓縮。如果設定為 ZipEntryCompression.STORED
,則歸檔檔的條目保持未壓縮狀態。
- 預設值
ZipEntryCompression.DEFLATED
Property
<ConfigurableFilePermissions
>
filePermissions
Property
<ConfigurableFilePermissions
>用於查詢和配置檔案存取權限的屬性。如果該屬性未設定值,則表示保留現有的權限。這些權限是否實際應用取決於複製動作的實作。詳細資訊請參閱 ConfigurableFilePermissions
。
- 使用
ear
外掛的預設值 null
Manifest
manifest
此 JAR 歸檔檔的 manifest。
String
metadataCharset
用於編碼 JAR 元數據(如檔案名稱)的字元集。預設為 UTF-8。您可以變更此屬性,但不建議這樣做,因為 JVM 預期 JAR 元數據使用 UTF-8 編碼
- 預設值
UTF-8
指定是否應在歸檔檔中保留檔案時間戳記。
如果 false
,這可確保歸檔檔條目在不同機器、Java 版本和作業系統之間的建置中具有相同的時間。
- 使用
ear
外掛的預設值 true
指定在從目錄讀取檔案時是否強制執行可重現的檔案順序。
然後,Gradle 將以可重現的順序遍歷磁碟上的目錄,這些目錄是此歸檔檔的一部分,而與檔案系統和作業系統無關。這有助於 Gradle 可靠地產生位元組對位元組可重現的歸檔檔。
- 使用
ear
外掛的預設值 false
FileCollection
source
(唯讀)
此任務的來源檔案。
zip 是否可以包含超過 65535 個檔案和/或支援大於 4GB 的檔案。
標準 zip 格式對檔案大小和計數有硬性限制。Zip64 格式擴展 實際上消除了這些限制,因此是建置大型 zip 所必需的。
但是,並非所有 Zip 讀取器都支援 Zip64 擴展。值得注意的是,ZipInputStream
JDK 類別在 Java 7 之前的版本中不支援 Zip64。這表示如果要建置要與 Java 6 和更早版本執行時期一起使用的 JAR,則不應啟用此屬性。
- 預設值
false
配置此 EAR 歸檔檔的部署描述符。
給定的閉包 (closure) 會被執行以設定部署描述符 (deployment descriptor)。DeploymentDescriptor
會以委派 (delegate) 的身分傳遞至該閉包。
Ear
deploymentDescriptor
(Action
<? super DeploymentDescriptor
>
configureAction)
Action
<? super DeploymentDescriptor
>配置此 EAR 歸檔檔的部署描述符。
給定的動作 (action) 會被執行以設定部署描述符。
AbstractCopyTask
eachFile
(Closure
closure)
新增一個動作,以應用於每個即將複製到其目標位置的檔案。給定的 closure 會使用 FileCopyDetails
作為其參數來呼叫。動作會依新增順序執行,並從父規範繼承。
AbstractCopyTask
eachFile
(Action
<? super FileCopyDetails
>
action)
Action
<? super FileCopyDetails
>新增一個動作,以應用於每個即將複製到其目標位置的檔案。動作可以變更檔案的目標路徑、篩選檔案的內容,或完全從結果中排除該檔案。動作會依新增順序執行,並從父規範繼承。
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 } }
如果未提供排除 (excludes),則不會排除任何檔案。如果提供了排除,則檔案必須不符合任何排除模式才能被處理。
AbstractCopyTask
exclude
(Iterable
<String
>
excludes)
Iterable
<String
>新增 ANT 樣式的排除模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。
AbstractCopyTask
exclude
(String
...
excludes)
String
...新增 ANT 樣式的排除模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。
AbstractCopyTask
exclude
(Spec
<FileTreeElement
>
excludeSpec)
Spec
<FileTreeElement
>新增排除規範。可以多次呼叫此方法以附加新的規範。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案必須不符合任何排除模式才能進行處理。
AbstractCopyTask
expand
(Map
<String
, ?>
properties)
Map
<String
, ?>在複製每個檔案時展開屬性參考。更具體來說,每個檔案都使用 Groovy 的 SimpleTemplateEngine
進行轉換。這表示您可以在檔案中使用簡單的屬性參考,例如 $property
或 ${property}
。您也可以在檔案中包含任意 Groovy 程式碼,例如 ${version ?: 'unknown'}
或 ${classpath*.name.join(' ')}
請注意,所有跳脫序列 (\n
、\t
、\\
等) 都會轉換為它們所代表的符號,因此,例如,\n
會變成換行符號。如果這是不 желательным (undesirable),則應使用 ContentFilterable.expand(java.util.Map, org.gradle.api.Action)
以停用此行為。
AbstractCopyTask
expand
(Map
<String
, ?>
properties, Action
<? super ExpandDetails
>
action)
Map
<String
, ?>Action
<? super ExpandDetails
>在複製每個檔案時展開屬性參考。更具體來說,每個檔案都使用 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)
Iterable
<String
>Action
<? super FileCopyDetails
>為每個路徑符合任何指定 Ant 樣式模式的檔案配置 FileCopyDetails
。這相當於使用 eachFile() 並根據檔案的路徑選擇性地應用配置。
AbstractCopyTask
filesMatching
(String
pattern, Action
<? super FileCopyDetails
>
action)
Action
<? super FileCopyDetails
>為每個路徑符合指定 Ant 樣式模式的檔案配置 FileCopyDetails
。這相當於使用 eachFile() 並根據檔案的路徑選擇性地應用配置。
AbstractCopyTask
filesNotMatching
(Iterable
<String
>
patterns, Action
<? super FileCopyDetails
>
action)
Iterable
<String
>Action
<? super FileCopyDetails
>為每個路徑不符合任何指定 Ant 樣式模式的檔案配置 FileCopyDetails
。這相當於使用 eachFile() 並根據檔案的路徑選擇性地應用配置。
AbstractCopyTask
filesNotMatching
(String
pattern, Action
<? super FileCopyDetails
>
action)
Action
<? super FileCopyDetails
>為每個路徑不符合指定 Ant 樣式模式的檔案配置 FileCopyDetails
。這相當於使用 eachFile() 並根據檔案的路徑選擇性地應用配置。
AbstractCopyTask
filter
(Closure
closure)
根據提供的 closure 新增內容篩選器。將使用每一行(去除行尾符號)呼叫 Closure,並應傳回字串以取代該行或 null
以移除該行。如果移除每一行,結果將會是一個空檔案,而不是一個不存在的檔案。
AbstractCopyTask
filter
(Class
<? extends FilterReader
>
filterType)
Class
<? extends FilterReader
>新增要在複製期間使用的內容篩選器。多次呼叫 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)
Map
<String
, ?>Class
<? extends FilterReader
>新增要在複製期間使用的內容篩選器。多次呼叫 filter 會將額外的篩選器新增至篩選器鏈。每個篩選器都應實作 java.io.FilterReader
。包含 org.apache.tools.ant.filters.*
以存取所有標準 Ant 篩選器。
篩選器 (Filter) 屬性可以使用 Groovy map 語法指定。
範例
filter(HeadFilter, lines:25, skip:2) filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
AbstractCopyTask
filter
(Transformer
<String
, String
>
transformer)
Transformer
<String
, String
>根據提供的 transformer 新增內容篩選器。將使用每一行(去除行尾符號)呼叫 Closure,並應傳回字串以取代該行或 null
以移除該行。如果移除每一行,結果將會是一個空檔案,而不是一個不存在的檔案。
AbstractCopyTask
from
(Object
sourcePath, Closure
c)
指定複製的來源檔案或目錄,並建立子 CopySourceSpec
。給定的來源路徑會根據 Project.files(java.lang.Object[])
進行評估。
AbstractCopyTask
from
(Object
sourcePath, Action
<? super CopySpec
>
configureAction)
Action
<? super CopySpec
>指定複製的來源檔案或目錄,並建立子 CopySpec
。給定的來源路徑會根據 Project.files(java.lang.Object[])
進行評估。
AbstractCopyTask
from
(Object
...
sourcePaths)
Object
...指定複製的來源檔案或目錄。給定的路徑會根據 Project.files(java.lang.Object[])
進行評估。
AbstractCopyTask
include
(Closure
includeSpec)
新增包含規範。可以多次呼叫此方法以附加新的規範。給定的 closure 會傳遞 FileTreeElement
作為其參數。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。
AbstractCopyTask
include
(Iterable
<String
>
includes)
Iterable
<String
>新增 ANT 樣式的包含模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式才能進行處理。
AbstractCopyTask
include
(String
...
includes)
String
...新增 ANT 樣式的包含模式。可以多次呼叫此方法以附加新的模式,並且可以在單次呼叫中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式才能進行處理。
AbstractCopyTask
include
(Spec
<FileTreeElement
>
includeSpec)
Spec
<FileTreeElement
>新增包含規範。可以多次呼叫此方法以附加新的規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須符合至少一個包含模式或規範才能包含在內。
AbstractArchiveTask
into
(Object
destPath)
指定檔案在歸檔檔 *內部* 的目標目錄。目標目錄會根據 Project.file(java.lang.Object)
進行評估。不要將其與 AbstractArchiveTask.getDestinationDirectory()
混淆,後者指定歸檔檔的輸出目錄。
AbstractArchiveTask
into
(Object
destPath, Closure
configureClosure)
建立並配置子 CopySpec
,其中包含檔案在歸檔檔 *內部* 的目標目錄。目標目錄會根據 Project.file(java.lang.Object)
進行評估。不要將其與 AbstractArchiveTask.getDestinationDirectory()
混淆,後者指定歸檔檔的輸出目錄。
建立並配置子 CopySpec
,其中包含檔案在歸檔檔 *內部* 的目標目錄。目標目錄會根據 Project.file(java.lang.Object)
進行評估。不要將其與 AbstractArchiveTask.getDestinationDirectory()
混淆,後者指定歸檔檔的輸出目錄。
新增要包含在 EAR 歸檔檔 'lib' 目錄中的依賴函式庫。
給定的閉包 (closure) 會被執行以設定 CopySpec
。CopySpec
會以委派 (delegate) 的身分傳遞至該閉包。
新增要包含在 EAR 歸檔檔 'lib' 目錄中的依賴函式庫。
給定的動作 (action) 會被執行以設定 CopySpec
。
配置此 JAR 歸檔檔的 manifest。
給定的閉包 (closure) 會被執行以設定 manifest。 Manifest
會以委派 (delegate) 的身分傳遞至該閉包。
配置此 JAR 歸檔檔的 manifest。
給定的動作 (action) 會被執行以設定 manifest。
將內容新增至此 JAR 歸檔檔的 META-INF 目錄。
給定的閉包 (closure) 會被執行以設定 CopySpec
。CopySpec
會以委派 (delegate) 的身分傳遞至該閉包。
將內容新增至此 JAR 歸檔檔的 META-INF 目錄。
給定的動作 (action) 會被執行以設定 CopySpec
。
AbstractCopyTask
rename
(Closure
closure)
重新命名來源檔案。將使用單一參數(檔案名稱)呼叫 closure。closure 應傳回包含新目標名稱的字串物件。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)
。
AbstractCopyTask
rename
(Transformer
<String
, String
>
renamer)
Transformer
<String
, String
>重新命名來源檔案。將使用單一參數(檔案名稱)呼叫函數。函數應傳回新的目標名稱。函數可以傳回 null,在這種情況下將使用原始名稱。