API 文件 | 專案 (Project) |
---|
此介面是您從建置檔案與 Gradle 互動的主要 API。從 Project
,您可以程式化地存取 Gradle 的所有功能。
Project
與
檔案之間存在一對一的關係。在建置初始化期間,Gradle 會為每個將參與建置的專案組裝一個 build.gradle
Project
物件,如下所示
- 為建置建立
Settings
實例。 - 針對
Settings
物件評估
腳本(如果存在)以進行組態設定。settings.gradle
- 使用已組態設定的
Settings
物件來建立Project
實例的階層結構。 - 最後,透過對專案執行其
檔案(如果存在)來評估每個build.gradle
Project
。專案以廣度優先順序評估,以便在評估其子專案之前先評估專案。可以透過呼叫
或使用Project.evaluationDependsOnChildren()
新增明確的評估依賴性來覆寫此順序。Project.evaluationDependsOn(java.lang.String)
專案本質上是 Task
物件的集合。每個任務執行一些基本的工作,例如編譯類別、執行單元測試或壓縮 WAR 檔案。您可以使用 TaskContainer
上的 create()
方法之一,例如 TaskContainer.create(java.lang.String)
,將任務新增至專案。您可以使用 TaskContainer
上的查找方法之一,例如 TaskCollection.getByName(java.lang.String)
,來尋找現有任務。
專案通常有許多執行其工作所需的依賴。此外,專案通常會產生許多其他專案可以使用的產出。這些依賴會分組在組態中,並且可以從儲存庫中檢索和上傳。您可以使用 ConfigurationContainer
(由 Project.getConfigurations()
方法傳回)來管理組態。DependencyHandler
(由 Project.getDependencies()
方法傳回)來管理依賴。ArtifactHandler
(由 Project.getArtifacts()
方法傳回)來管理產出。RepositoryHandler
(由 Project.getRepositories()
方法傳回)來管理儲存庫。
外掛程式可用於模組化和重複使用專案組態。可以使用 PluginAware.apply(java.util.Map)
方法或使用 PluginDependenciesSpec
外掛程式腳本區塊來套用外掛程式。
Gradle 針對 Project
實例執行專案的建置檔案,以組態設定專案。您的腳本使用的任何屬性或方法都會委派給相關聯的 Project
物件。這表示您可以直接在腳本中使用 Project
介面上的任何方法和屬性。
例如
defaultTasks('some-task') // Delegates to Project.defaultTasks() reportsDir = file('reports') // Delegates to Project.file() and the Java Plugin
您也可以使用 project
屬性存取 Project
實例。在某些情況下,這可以使腳本更清晰。例如,您可以使用 project.name
而不是 name
來存取專案的名稱。
專案具有 5 個屬性「範圍」,它會在其中搜尋屬性。您可以在建置檔案中依名稱存取這些屬性,或呼叫專案的 Project.property(java.lang.String)
方法。範圍包括
Project
物件本身。此範圍包括Project
實作類別宣告的任何屬性 getter 和 setter。例如,Project.getRootProject()
可作為rootProject
屬性存取。此範圍的屬性是可讀或可寫的,具體取決於是否存在對應的 getter 或 setter 方法。- 專案的額外屬性。每個專案都維護一個額外屬性映射,其中可以包含任何任意名稱 -> 值對。定義後,此範圍的屬性即可讀寫。請參閱 額外屬性 以取得更多詳細資訊。
- 外掛程式新增至專案的擴充功能。每個擴充功能都以唯讀屬性形式提供,其名稱與擴充功能相同。
- 外掛程式新增至專案的慣例屬性。外掛程式可以透過專案的
Convention
物件,將屬性和方法新增至專案。此範圍的屬性可能是可讀或可寫的,具體取決於慣例物件。 - 專案的任務。可以使用任務的名稱作為屬性名稱來存取任務。此範圍的屬性是唯讀的。例如,名為
compile
的任務可作為compile
屬性存取。 - 額外屬性和慣例屬性是從專案的父專案繼承而來,遞迴向上直到根專案。此範圍的屬性是唯讀的。
讀取屬性時,專案會依順序搜尋上述範圍,並從第一個找到屬性的範圍傳回值。如果找不到,則會擲回例外狀況。請參閱 Project.property(java.lang.String)
以取得更多詳細資訊。
寫入屬性時,專案會依順序搜尋上述範圍,並在第一個找到屬性的範圍中設定屬性。如果找不到,則會擲回例外狀況。請參閱 Project.setProperty(java.lang.String, java.lang.Object)
以取得更多詳細資訊。
所有額外屬性都必須透過 "ext" 命名空間定義。一旦定義了額外屬性,它就可以直接在擁有物件(在以下情況中分別為專案、任務和子專案)上使用,並且可以讀取和更新。只有初始宣告需要透過命名空間完成。
project.ext.prop1 = "foo" task doStuff { ext.prop2 = "bar" } subprojects { ext.${prop3} = false }
讀取額外屬性是透過 "ext" 或透過擁有物件完成的。
ext.isSnapshot = version.endsWith("-SNAPSHOT") if (isSnapshot) { // do snapshot stuff }
專案具有 5 個方法「範圍」,它會在其中搜尋方法
Project
物件本身。- 建置檔案。專案會搜尋在建置檔案中宣告的相符方法。
- 外掛程式新增至專案的擴充功能。每個擴充功能都以方法形式提供,該方法採用閉包或
Action
作為參數。 - 外掛程式新增至專案的慣例方法。外掛程式可以透過專案的
Convention
物件,將屬性和方法新增至專案。 - 專案的任務。會為每個任務新增一個方法,使用任務的名稱作為方法名稱,並採用單一閉包或
Action
參數。該方法使用提供的閉包呼叫相關聯任務的Task.configure(groovy.lang.Closure)
方法。例如,如果專案有名為compile
的任務,則會新增具有以下簽名的方法:void compile(Closure configureClosure)
。 - 父專案的方法,遞迴向上直到根專案。
- 專案的屬性,其值為閉包。閉包會被視為方法並使用提供的參數呼叫。屬性會如上所述定位。
屬性 | 描述 |
allprojects | 包含此專案及其子專案的集合。 |
ant | 此專案的 |
artifacts | 傳回用於將專案產生的產出指派給組態的處理常式。 |
buildDir | 已棄用 此專案的建置目錄。建置目錄是所有產出生成到的目錄。建置目錄的預設值為 |
buildFile | 此專案的建置腳本。 |
buildscript | 此專案的建置腳本處理常式。您可以使用此處理常式來查詢有關此專案建置腳本的詳細資訊,並管理用於編譯和執行專案建置腳本的類別路徑。 |
childProjects | 此專案的直接子專案。 |
configurations | 此專案的組態。 |
convention | 已棄用 此專案的 |
defaultTasks | 此專案的預設任務名稱。當啟動建置時未提供任務名稱時,會使用這些任務。 |
dependencies | 此專案的依賴處理常式。傳回的依賴處理常式實例可用於新增新的依賴。若要存取已宣告的依賴,可以使用組態。 |
dependencyLocking | 提供對組態設定依賴鎖定的存取 |
description | 此專案的描述(如果有的話)。 |
extensions | 允許將 DSL 擴充功能新增至專案。對外掛程式作者很有用。 |
gradle | 此專案所屬的 |
group | 此專案的群組。Gradle 始終使用群組的 |
layout | 提供對此專案各種重要目錄的存取。 |
logger | 此專案的記錄器。您可以在建置檔案中使用它來寫入記錄訊息。 |
logging |
|
name | 此專案的名稱。專案的名稱在專案階層結構中不一定是唯一的。您應該使用 |
normalization | 提供對組態設定輸入正規化的存取。 |
parent | 此專案的父專案(如果有的話)。 |
path | 此專案的路徑。路徑是專案的完整名稱。 |
pluginManager | 此外掛程式感知物件的外掛程式管理員。 |
plugins | 已套用至此物件的外掛程式容器。 |
project | 傳回此專案。此方法在建置檔案中很有用,可明確存取專案屬性和方法。例如,使用 |
projectDir | 包含專案建置檔案的目錄。 |
properties | 此專案的屬性。請參閱 此處 以取得專案可用的屬性的詳細資訊。 |
repositories | 傳回處理常式以建立儲存庫,這些儲存庫用於檢索依賴和上傳專案產生的產出。 |
resources | 提供對資源特定實用方法的存取,例如建立各種資源的工廠方法。 |
rootDir | 此專案的根目錄。根目錄是根專案的專案目錄。 |
rootProject | 此專案所屬階層結構的根專案。在單一專案建置的情況下,此方法會傳回此專案。 |
state | 此專案的評估狀態。您可以使用它來存取有關此專案評估的資訊,例如是否失敗。 |
status | 此專案的狀態。Gradle 始終使用狀態的 |
subprojects | 包含此專案子專案的集合。 |
tasks | 此專案的任務。 |
version | 此專案的版本。Gradle 始終使用版本的 |
屬性 | 描述 |
application |
|
applicationDefaultJvmArgs | 執行應用程式時傳遞至 JVM 的字串引數陣列 |
applicationDistribution | 發佈內容的規格。 |
applicationName | 應用程式的名稱。 |
executableDir | 放置可執行檔的目錄 |
mainClassName | 應用程式主要類別的完整名稱。 |
屬性 | 描述 |
checkstyle |
|
屬性 | 描述 |
codenarc |
|
屬性 | 描述 |
distributions |
|
屬性 | 描述 |
appDirName | 應用程式目錄的名稱,相對於專案目錄。預設為 "src/main/application"。 |
deploymentDescriptor | 自訂部署描述符組態。預設為具有合理預設值的 "application.xml"。 |
generateDeploymentDescriptor | 指定如果部署描述符不存在是否應生成它。預設值為 true。 |
libDirName | EAR 檔案中程式庫目錄的名稱。預設為 "lib"。 |
屬性 | 描述 |
eclipse |
|
屬性 | 描述 |
jacoco |
|
屬性 | 描述 |
archivesBaseName | 用於歸檔檔案的基本名稱。 |
base |
|
distsDirName | 發佈目錄的名稱。這相對於專案的建置目錄進行解釋。 |
distsDirectory | 用於生成 TAR 和 ZIP 歸檔的目錄。 |
docsDir | 傳回指向預期用於所有文件根目錄的檔案。 |
docsDirName | 文件目錄的名稱。可以是名稱或相對於建置目錄的路徑。 |
java |
|
libsDirName | 程式庫目錄的名稱。這相對於專案的建置目錄進行解釋。 |
libsDirectory | 用於生成 JAR 和 WAR 歸檔的目錄。 |
reporting |
|
sourceCompatibility | 用於編譯 Java 原始碼的來源相容性。 |
sourceSets | 原始碼集容器。 |
targetCompatibility | 用於編譯 Java 原始碼的目標相容性。 |
testReportDir | 傳回指向將用於報告的根目錄的檔案。 |
testReportDirName | 測試報告目錄的名稱。可以是名稱或相對於 |
testResultsDir | 傳回指向測試結果根目錄的檔案。 |
testResultsDirName | 測試結果目錄的名稱。可以是名稱或相對於建置目錄的路徑。 |
屬性 | 描述 |
pmd |
|
屬性 | 描述 |
projectReportDir | 用於生成專案報告的目錄。 |
projectReportDirName | 用於生成專案報告的目錄名稱,相對於專案的報告目錄。 |
屬性 | 描述 |
publishing |
|
屬性 | 描述 |
簽署 | 由簽署外掛程式新增的 |
屬性 | 描述 |
visualStudio | 由 visual-studio 外掛程式新增的 |
屬性 | 描述 |
webAppDir | Web 應用程式目錄。 |
webAppDirName | 相對於專案目錄的 Web 應用程式目錄名稱。 |
屬性 | 描述 |
xcode | 由 xcode 外掛程式新增的 |
方法 | 描述 |
absoluteProjectPath(路徑) | 將名稱轉換為絕對專案路徑,解析相對於此專案的名稱。 |
afterEvaluate(閉包) | 新增一個閉包,於此專案評估完成後立即呼叫。 |
afterEvaluate(動作) | 新增一個動作,於此專案評估完成後立即呼叫。 |
allprojects(動作) | 設定此專案及其每個子專案。 |
ant(設定動作) | 針對此專案的 |
apply(閉包) | 套用零或多個外掛程式或腳本。 |
apply(選項) | 使用以 Map 形式提供的給定選項,套用外掛程式或腳本。如果外掛程式已套用,則不執行任何動作。 |
apply(動作) | 套用零或多個外掛程式或腳本。 |
artifacts(設定動作) | 設定此專案發布的產出物。 |
beforeEvaluate(閉包) | 新增一個閉包,於此專案評估開始前立即呼叫。 |
beforeEvaluate(動作) | 新增一個動作,於此專案評估開始前立即呼叫。 |
configure(物件, 設定閉包) | 透過閉包設定物件集合。這等同於針對每個給定的物件呼叫 |
configure(物件, 設定動作) | 透過動作設定物件集合。 |
configure(物件, 設定閉包) | 透過閉包設定物件,閉包的委派設定為提供的物件。這樣您就不必多次指定設定陳述式的上下文。 |
container(類型) | 建立一個容器,用於管理指定類型的具名物件。指定的類型必須具有一個公用建構子,該建構子將名稱作為 String 參數。 |
container(類型, 工廠閉包) | 建立一個容器,用於管理指定類型的具名物件。給定的閉包用於建立物件實例。要建立的實例名稱作為參數傳遞給閉包。 |
container(類型, 工廠) | 建立一個容器,用於管理指定類型的具名物件。給定的工廠用於建立物件實例。 |
copy(閉包) | 複製指定的檔案。給定的閉包用於設定 |
copy(動作) | 複製指定的檔案。給定的動作用於設定 |
copySpec() | 建立一個 |
copySpec(閉包) | 建立一個 |
copySpec(動作) | 建立一個 |
defaultTasks(預設任務) | 設定此專案的預設任務名稱。當啟動建置時未提供任務名稱時,將使用這些任務。 |
delete(路徑) | 刪除檔案和目錄。 |
delete(動作) | 刪除指定的檔案。給定的動作用於設定 |
dependencyLocking(設定) | 設定依賴鎖定 |
evaluationDependsOn(路徑) | 宣告此專案對具有給定路徑的專案具有評估依賴性。 |
exec(閉包) | 已棄用 執行外部命令。閉包設定 |
exec(動作) | 已棄用 執行外部命令。 |
file(路徑) | 解析相對於此專案的專案目錄的檔案路徑。此方法根據其類型轉換提供的路徑 |
file(路徑, 驗證) | 解析相對於此專案的專案目錄的檔案路徑,並使用給定的方案驗證它。請參閱 |
fileTree(基礎目錄) | 使用給定的基礎目錄建立新的 |
fileTree(基礎目錄, 設定閉包) | 使用給定的基礎目錄建立新的 |
fileTree(基礎目錄, 設定動作) | 使用給定的基礎目錄建立新的 |
fileTree(args) | 使用提供的引數 Map 建立新的 |
files(路徑, 設定閉包) | 使用給定的路徑建立新的 |
files(路徑, 設定動作) | 使用給定的路徑建立新的 |
files(路徑) | 傳回包含給定檔案的 |
findProject(路徑) | 依路徑尋找專案。如果路徑是相對路徑,則相對於此專案進行解釋。 |
findProperty(屬性名稱) | 傳回給定屬性的值,如果找不到則傳回 null。此方法按如下方式尋找屬性 |
getAllTasks(遞迴) | 傳回此專案中包含的任務 Map,以及可選的其子專案。 |
getTasksByName(名稱, 遞迴) | 傳回此專案中包含的具有給定名稱的任務集合,以及可選的其子專案。注意: 這是一個昂貴的操作,因為它需要設定所有專案。 |
hasProperty(屬性名稱) | 判斷此專案是否具有給定的屬性。請參閱此處以取得專案可用的屬性詳細資訊。 |
javaexec(閉包) | 已棄用 執行 Java 主類別。閉包設定 |
javaexec(動作) | 已棄用 執行外部 Java 程序。 |
mkdir(路徑) | 建立目錄並傳回指向它的檔案。 |
normalization(設定) | 設定輸入正規化。 |
project(路徑) | 依路徑尋找專案。如果路徑是相對路徑,則相對於此專案進行解釋。 |
project(路徑, 設定閉包) | 依路徑尋找專案,並使用給定的閉包設定它。如果路徑是相對路徑,則相對於此專案進行解釋。目標專案作為閉包的委派傳遞給閉包。 |
project(路徑, 設定動作) | 依路徑尋找專案,並使用給定的動作設定它。如果路徑是相對路徑,則相對於此專案進行解釋。 |
property(屬性名稱) | 傳回給定屬性的值。此方法按如下方式尋找屬性 |
relativePath(路徑) | 傳回從專案目錄到給定路徑的相對路徑。給定的路徑物件會 (邏輯上) 根據 |
relativeProjectPath(路徑) | 將名稱轉換為相對於此專案的專案路徑。 |
setProperty(名稱, 值) | 設定此專案的屬性。此方法在以下位置搜尋具有給定名稱的屬性,並在找到屬性的第一個位置設定屬性。 |
subprojects(動作) | 設定此專案的子專案 |
sync(動作) | 將目的地目錄的內容與某些來源目錄和檔案同步。給定的動作用於設定 |
tarTree(tarPath) | 建立一個新的 |
task(名稱) | 已棄用 建立一個具有給定名稱的 |
task(名稱, 設定閉包) | 已棄用 建立一個具有給定名稱的 |
task(名稱, 設定動作) | 已棄用 建立一個具有給定名稱的 |
task(args, 名稱) | 已棄用 建立一個具有給定名稱的 |
task(args, 名稱, 設定閉包) | 已棄用 建立一個具有給定名稱的 |
uri(路徑) | 將檔案路徑解析為 URI,相對於此專案的專案目錄。根據 |
zipTree(zipPath) | 建立一個新的 |
方法 | 描述 |
appDirName(appDirName) | 允許變更應用程式目錄。預設值為 "src/main/application"。 |
deploymentDescriptor(設定動作) | 設定此 EAR 封存檔的部署描述符。 |
libDirName(libDirName) | 允許變更 EAR 檔案中的函式庫目錄。預設值為 "lib"。 |
區塊 | 描述 |
allprojects | 設定此專案及其每個子專案。 |
ant | 針對此專案的 |
artifacts | 設定此專案發布的產出物。 |
buildscript | 設定此專案的建置腳本類別路徑。 |
configurations | 設定此專案的依賴組態。 |
dependencies | 設定此專案的依賴項。 |
repositories | 設定此專案的儲存庫。 |
subprojects | 設定此專案的子專案。 |
區塊 | 描述 |
application | 設定由 application 外掛程式新增的 |
區塊 | 描述 |
checkstyle | 設定由 checkstyle 外掛程式新增的 |
區塊 | 描述 |
codenarc | 設定由 codenarc 外掛程式新增的 |
區塊 | 描述 |
distributions | 設定由 distribution 外掛程式新增的 |
區塊 | 描述 |
deploymentDescriptor | 設定此 EAR 封存檔的部署描述符。 |
區塊 | 描述 |
eclipse | 設定由 eclipse 外掛程式新增的 |
區塊 | 描述 |
jacoco | 設定由 jacoco 外掛程式新增的 |
區塊 | 描述 |
base | 設定由 java 外掛程式新增的 |
java | 設定由 java 外掛程式新增的 |
reporting | 設定由 java 外掛程式新增的 |
sourceSets | 設定此專案的來源集。 |
區塊 | 描述 |
pmd | 設定由 pmd 外掛程式新增的 |
區塊 | 描述 |
publishing | 設定由 publishing 外掛程式新增的 |
區塊 | 描述 |
簽署 | 設定由 signing 外掛程式新增的 |
區塊 | 描述 |
visualStudio | 設定由 visual-studio 外掛程式新增的 |
區塊 | 描述 |
xcode | 設定由 xcode 外掛程式新增的 |
AntBuilder
ant
(唯讀)
此專案的 AntBuilder
。您可以在建置檔案中使用它來執行 ant 任務。請參閱以下範例。
task printChecksum { doLast { ant { //using ant checksum task to store the file checksum in the checksumOut ant property checksum(property: 'checksumOut', file: 'someFile.txt') //we can refer to the ant property created by checksum task: println "The checksum is: " + checksumOut } //we can refer to the ant property later as well: println "I just love to print checksums: " + ant.checksumOut } }
考慮以下 Ant 目標範例
<target name='printChecksum'> <checksum property='checksumOut'> <fileset dir='.'> <include name='agile.txt'/> </fileset> </checksum> <echo>The checksum is: ${checksumOut}</echo> </target>
以下是如何在 Gradle 中呈現。觀察 Ant XML 如何透過 Ant Builder 在 Groovy 中表示
task printChecksum { doLast { ant { checksum(property: 'checksumOut') { fileset(dir: '.') { include name: 'agile1.txt' } } } logger.lifecycle("The checksum is $ant.checksumOut") } }
ScriptHandler
buildscript
(唯讀)
此專案的建置腳本處理常式。您可以使用此處理常式來查詢有關此專案建置腳本的詳細資訊,並管理用於編譯和執行專案建置腳本的類別路徑。
Convention
convention
(唯讀)
注意:此屬性已棄用,並將在 Gradle 的下一個主要版本中移除。
此專案的 Convention
。
您可以在您的建置檔中使用 convention
存取此屬性。您也可以像存取此專案的屬性和方法一樣,存取 Convention 物件的屬性和方法。請參閱此處以取得更多詳細資訊
DependencyHandler
dependencies
(唯讀)
此專案的依賴處理常式。傳回的依賴處理常式實例可用於新增新的依賴。若要存取已宣告的依賴,可以使用組態。
範例:請參閱 DependencyHandler
的文件
DependencyLockingHandler
dependencyLocking
(唯讀)
提供對組態設定依賴鎖定的存取
String
description
此專案的描述(如果有的話)。
ExtensionContainer
extensions
(唯讀)
允許將 DSL 擴充功能新增至專案。對外掛程式作者很有用。
Object
group
此專案的群組。Gradle 始終使用群組的 toString()
值。群組預設為以點作為分隔符號的路徑。
ProjectLayout
layout
(唯讀)
提供對此專案各種重要目錄的存取。
Logger
logger
(唯讀)
此專案的記錄器。您可以在建置檔案中使用它來寫入記錄訊息。
LoggingManager
logging
(唯讀)
LoggingManager
,可用於接收記錄並控制此專案建置腳本的標準輸出/錯誤捕獲。預設情況下,System.out 會在 QUIET 記錄層級重新導向至 Gradle 記錄系統,而 System.err 會在 ERROR 記錄層級重新導向。
String
name
(唯讀)
此專案的名稱。專案的名稱在專案階層結構中不一定是唯一的。您應該使用 Project.getPath()
方法來取得專案的唯一識別碼。如果根專案未命名且位於檔案系統根目錄上,它將具有隨機產生的名稱
InputNormalizationHandler
normalization
(唯讀)
提供對組態設定輸入正規化的存取。
Project
parent
(唯讀)
此專案的父專案(如果有的話)。
String
path
(唯讀)
此專案的路徑。路徑是專案的完整名稱。
PluginManager
pluginManager
(唯讀)
此外掛程式感知物件的外掛程式管理員。
PluginContainer
plugins
(唯讀)
已套用至此物件的外掛程式容器。
雖然未棄用,但建議使用此介面的方法或 PluginAware.getPluginManager()
,而不是使用外掛程式容器。
使用此介面或 PluginAware.getPluginManager()
上的 'apply' 方法之一來套用外掛程式,而不是透過外掛程式容器套用。
請使用 PluginManager.hasPlugin(java.lang.String)
或類似方法來查詢外掛程式是否已套用,而不是透過外掛程式容器來執行。
Project
project
(唯讀)
傳回此專案。此方法在建置檔案中很有用,可明確存取專案屬性和方法。例如,使用 project.name
可以比使用 name
更好地表達您的意圖。此方法也允許您從屬性可能隱藏的範圍(例如,從方法或閉包)存取專案屬性。
File
projectDir
(唯讀)
包含專案建置檔案的目錄。
RepositoryHandler
repositories
(唯讀)
傳回處理常式以建立儲存庫,這些儲存庫用於檢索依賴和上傳專案產生的產出。
ResourceHandler
resources
(唯讀)
提供對資源特定實用方法的存取,例如建立各種資源的工廠方法。
File
rootDir
(唯讀)
此專案的根目錄。根目錄是根專案的專案目錄。
Project
rootProject
(唯讀)
此專案所屬階層結構的根專案。在單一專案建置的情況下,此方法會傳回此專案。
ProjectState
state
(唯讀)
此專案的評估狀態。您可以使用它來存取有關此專案評估的資訊,例如是否失敗。
Object
status
此專案的狀態。Gradle 始終使用狀態的 toString()
值。狀態預設為 release
。
專案的狀態只有在您將程式庫與模組描述符一起上傳時才有意義。此處指定的狀態將會是此模組描述符的一部分。
TaskContainer
tasks
(唯讀)
此專案的任務。
Object
version
此專案的版本。Gradle 始終使用版本的 toString()
值。版本預設為 unspecified
。
JavaApplication
application
(唯讀)
application
外掛程式新增的 JavaApplication
。
CopySpec
applicationDistribution
發佈內容的規格。
使用此 CopySpec
在應用程式發佈中包含額外的檔案/資源。
plugins { id 'application' } application { applicationDistribution.from("some/dir") { include "*.txt" } }
請注意,應用程式外掛程式預先配置此規範以:包含 "src/dist
" 的內容、將應用程式啟動腳本複製到 "bin
" 目錄,以及將建置的 jar 及其相依性複製到 "lib
" 目錄。
String
applicationName
應用程式的名稱。
String
executableDir
放置可執行檔的目錄
String
mainClassName
應用程式主要類別的完整名稱。
CheckstyleExtension
checkstyle
(唯讀)
checkstyle
外掛程式新增的 CheckstyleExtension
。
CodeNarcExtension
codenarc
(唯讀)
codenarc
外掛程式新增的 CodeNarcExtension
。
DistributionContainer
distributions
(唯讀)
distribution
外掛程式新增的 DistributionContainer
。
String
appDirName
應用程式目錄的名稱,相對於專案目錄。預設為 "src/main/application"。
DeploymentDescriptor
deploymentDescriptor
自訂部署描述符組態。預設為具有合理預設值的 "application.xml"。
String
libDirName
EAR 檔案中程式庫目錄的名稱。預設為 "lib"。
EclipseModel
eclipse
(唯讀)
eclipse
外掛程式新增的 EclipseModel
。
JacocoPluginExtension
jacoco
(唯讀)
jacoco
外掛程式新增的 JacocoPluginExtension
。
String
archivesBaseName
用於歸檔檔案的基本名稱。
BasePluginExtension
base
(唯讀)
java
外掛程式新增的 BasePluginExtension
。
String
distsDirName
發佈目錄的名稱。這相對於專案的建置目錄進行解釋。
DirectoryProperty
distsDirectory
用於生成 TAR 和 ZIP 歸檔的目錄。
File
docsDir
(唯讀)
傳回指向預期用於所有文件根目錄的檔案。
String
docsDirName
文件目錄的名稱。可以是名稱或相對於建置目錄的路徑。
JavaPluginExtension
java
(唯讀)
java
外掛程式新增的 JavaPluginExtension
。
String
libsDirName
程式庫目錄的名稱。這相對於專案的建置目錄進行解釋。
DirectoryProperty
libsDirectory
用於生成 JAR 和 WAR 歸檔的目錄。
ReportingExtension
reporting
(唯讀)
java
外掛程式新增的 ReportingExtension
。
JavaVersion
sourceCompatibility
用於編譯 Java 原始碼的來源相容性。
SourceSetContainer
sourceSets
(唯讀)
原始碼集容器。
JavaVersion
targetCompatibility
用於編譯 Java 原始碼的目標相容性。
File
testReportDir
(唯讀)
傳回指向將用於報告的根目錄的檔案。
String
testReportDirName
測試報告目錄的名稱。可以是名稱或相對於 ReportingExtension.getBaseDir()
的路徑。
File
testResultsDir
(唯讀)
傳回指向測試結果根目錄的檔案。
String
testResultsDirName
測試結果目錄的名稱。可以是名稱或相對於建置目錄的路徑。
PmdExtension
pmd
(唯讀)
pmd
外掛程式新增的 PmdExtension
。
File
projectReportDir
(唯讀)
用於生成專案報告的目錄。
String
projectReportDirName
用於生成專案報告的目錄名稱,相對於專案的報告目錄。
PublishingExtension
publishing
(唯讀)
publishing
外掛程式新增的 PublishingExtension
。
SigningExtension
signing
(唯讀)
由簽署外掛程式新增的 SigningExtension
。
VisualStudioRootExtension
visualStudio
(唯讀)
由 visual-studio 外掛程式新增的 VisualStudioRootExtension
。
File
webAppDir
(唯讀)
Web 應用程式目錄。
String
webAppDirName
相對於專案目錄的 Web 應用程式目錄名稱。
XcodeRootExtension
xcode
(唯讀)
由 xcode 外掛程式新增的 XcodeRootExtension
。
void
afterEvaluate
(Closure
closure)
新增一個閉包,於此專案評估完成後立即呼叫。
新增一個動作,於此專案評估完成後立即呼叫。
將專案作為參數傳遞給 action。傳遞給此方法的所有 action 會依傳遞順序執行。父專案可以將 action 新增至其子專案,以便在子專案的建置檔案執行後,根據其狀態進一步配置這些專案。
如果專案已經過評估,則此方法會失敗。
如果您在 afterEvaluate
action 中呼叫此方法,則傳遞的 action 會在所有先前新增的 afterEvaluate
action 完成執行後執行。
AntBuilder
ant
(Action
<? super AntBuilder
>
configureAction)
Action
<? super AntBuilder
>針對此專案的 AntBuilder
執行給定的動作。您可以在您的建置檔中使用此功能來執行 Ant 任務。請參閱 Project.getAnt()
的 javadoc 中的範例
void
apply
(Closure
closure)
套用零或多個外掛程式或腳本。
給定的 closure 用於配置 ObjectConfigurationAction
,它「建置」外掛程式應用程式。
此方法與 PluginAware.apply(java.util.Map)
的不同之處在於,它允許多次調用配置 action 的方法。
使用以 Map 形式提供的給定選項,套用外掛程式或腳本。如果外掛程式已套用,則不執行任何動作。
給定的 map 會作為一系列方法呼叫套用至新建立的 ObjectConfigurationAction
。也就是說,map 中的每個 key 都應為 ObjectConfigurationAction
的方法名稱,而 value 則為與該方法相容的引數。
以下選項可用
from
:要套用的腳本。接受Project.uri(java.lang.Object)
支援的任何路徑。plugin
:要套用的外掛程式的 ID 或實作類別。to
:目標委派物件或物件。預設值為此外掛程式感知物件。使用此選項可配置此物件以外的物件。
void
apply
(Action
<? super ObjectConfigurationAction
>
action)
Action
<? super ObjectConfigurationAction
>套用零或多個外掛程式或腳本。
給定的 closure 用於配置 ObjectConfigurationAction
,它「建置」外掛程式應用程式。
此方法與 PluginAware.apply(java.util.Map)
的不同之處在於,它允許多次調用配置 action 的方法。
void
artifacts
(Action
<? super ArtifactHandler
>
configureAction)
Action
<? super ArtifactHandler
>設定此專案發布的產出物。
此方法會針對此專案的 ArtifactHandler
執行給定的 action。
範例
configurations { //declaring new configuration that will be used to associate with artifacts schema } task schemaJar(type: Jar) { //some imaginary task that creates a jar artifact with the schema } //associating the task that produces the artifact with the configuration artifacts { //configuration name and the task: schema schemaJar }
void
beforeEvaluate
(Closure
closure)
新增一個閉包,於此專案評估開始前立即呼叫。
新增一個動作,於此專案評估開始前立即呼叫。
將專案作為參數傳遞給 action。傳遞給此方法的所有 action 會依傳遞順序執行。
如果專案已經過評估,則 action 永遠不會執行。
如果您在 beforeEvaluate
action 中呼叫此方法,則傳遞的 action 永遠不會執行。
透過閉包設定物件集合。這等同於針對每個給定的物件呼叫 Project.configure(java.lang.Object, groovy.lang.Closure)
。
透過閉包設定物件,閉包的委派設定為提供的物件。這樣您就不必多次指定設定陳述式的上下文。
取代
MyType myType = new MyType()
myType.doThis()
myType.doThat()
您可以改用
MyType myType = configure(new MyType()) {
doThis()
doThat()
}
被配置的物件也會作為參數傳遞給 closure,因此您可以在需要時明確存取它
configure(someObj) { obj -> obj.doThis() }
NamedDomainObjectContainer
<T
>
container
(Class
<T
>
type)
NamedDomainObjectContainer
<T
>Class
<T
>建立一個容器,用於管理指定類型的具名物件。指定的類型必須具有一個公用建構子,該建構子將名稱作為 String 參數。
所有物件必須將其名稱公開為名為 "name" 的 bean 屬性。名稱在物件的生命週期中必須保持不變。
NamedDomainObjectContainer
<T
>
container
(Class
<T
>
type, Closure
factoryClosure)
NamedDomainObjectContainer
<T
>Class
<T
>建立一個容器,用於管理指定類型的具名物件。給定的閉包用於建立物件實例。要建立的實例名稱作為參數傳遞給閉包。
所有物件必須將其名稱公開為名為 "name" 的 bean 屬性。名稱在物件的生命週期中必須保持不變。
NamedDomainObjectContainer
<T
>
container
(Class
<T
>
type, NamedDomainObjectFactory
<T
>
factory)
NamedDomainObjectContainer
<T
>Class
<T
>NamedDomainObjectFactory
<T
>建立一個容器,用於管理指定類型的具名物件。給定的工廠用於建立物件實例。
所有物件必須將其名稱公開為名為 "name" 的 bean 屬性。名稱在物件的生命週期中必須保持不變。
WorkResult
copy
(Closure
closure)
複製指定的檔案。給定的閉包用於設定 CopySpec
,然後用於複製檔案。範例
copy {
from configurations.runtimeClasspath
into 'build/deploy/lib'
}
請注意,CopySpec 可以巢狀
copy { into 'build/webroot' exclude '**/.svn/**' from('src/main/webapp') { include '**/*.jsp' filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1']) } from('src/main/js') { include '**/*.js' } }
WorkResult
copy
(Action
<? super CopySpec
>
action)
Action
<? super CopySpec
>複製指定的檔案。給定的動作用於設定 CopySpec
,然後用於複製檔案。
建立一個 CopySpec
,稍後可用於複製檔案或建立封存檔。給定的閉包用於在 CopySpec
由此方法傳回之前設定它。
def baseSpec = copySpec { from "source" include "**/*.java" } task copy(type: Copy) { into "target" with baseSpec }
void
defaultTasks
(String
...
defaultTasks)
String
...設定此專案的預設任務名稱。當啟動建置時未提供任務名稱時,將使用這些任務。
boolean
delete
(Object
...
paths)
Object
...刪除檔案和目錄。
這將不會追蹤符號連結。如果您也需要追蹤符號連結,請使用 Project.delete(org.gradle.api.Action)
。
WorkResult
delete
(Action
<? super DeleteSpec
>
action)
Action
<? super DeleteSpec
>刪除指定的檔案。給定的動作用於設定 DeleteSpec
,然後用於刪除檔案。
範例
project.delete {
delete 'somefile'
followSymlinks = true
}
void
dependencyLocking
(Action
<? super DependencyLockingHandler
>
configuration)
Action
<? super DependencyLockingHandler
>設定依賴鎖定
ExecResult
exec
(Action
<? super ExecSpec
>
action)
Action
<? super ExecSpec
>注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
執行外部命令。
給定的 action 配置 ExecSpec
,用於啟動程序。此方法會封鎖直到程序終止,並傳回其結果。
解析相對於此專案的專案目錄的檔案路徑。此方法根據其類型轉換提供的路徑
- 一個
CharSequence
,包括String
或GString
。相對於專案目錄進行解譯。以file:
開頭的字串會被視為檔案 URL。 - 一個
File
。如果檔案是絕對檔案,則會按原樣傳回。否則,檔案的路徑會相對於專案目錄進行解譯。 - 一個
Path
。路徑必須與預設提供者相關聯,並且其處理方式與File
的執行個體相同。 - 一個
URI
或URL
。URL 的路徑會解譯為檔案路徑。僅支援file:
URL。 - 一個
Directory
或RegularFile
。 - 任何支援類型的
Provider
。提供者的值會被遞迴解析。 - 一個
TextResource
。 - 一個 Groovy
Closure
或 Kotlin 函數,會回傳任何支援的類型。閉包的回傳值會被遞迴解析。 - 一個
Callable
,會回傳任何支援的類型。Callable 的回傳值會被遞迴解析。
File
file
(Object
path, PathValidation
validation)
解析相對於此專案的專案目錄的檔案路徑,並使用給定的方案驗證它。請參閱 PathValidation
以取得可能的驗證列表。
ConfigurableFileTree
fileTree
(Object
baseDir)
使用給定的基礎目錄建立新的 ConfigurableFileTree
。給定的 baseDir 路徑根據 Project.file(java.lang.Object)
進行評估。
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
def myTree = fileTree("src") myTree.include "**/*.java" myTree.builtBy "someTask" task copy(type: Copy) { from myTree }
FileTree
中檔案的順序是不穩定的,即使在同一部電腦上也是如此。
ConfigurableFileTree
fileTree
(Object
baseDir, Closure
configureClosure)
使用給定的基礎目錄建立新的 ConfigurableFileTree
。給定的 baseDir 路徑根據 Project.file(java.lang.Object)
進行評估。閉包將用於設定新的檔案樹。檔案樹作為其委派傳遞給閉包。範例
def myTree = fileTree('src') { exclude '**/.data/**' builtBy 'someTask' } task copy(type: Copy) { from myTree }
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
FileTree
中檔案的順序是不穩定的,即使在同一部電腦上也是如此。
ConfigurableFileTree
fileTree
(Object
baseDir, Action
<? super ConfigurableFileTree
>
configureAction)
Action
<? super ConfigurableFileTree
>使用給定的基礎目錄建立新的 ConfigurableFileTree
。給定的 baseDir 路徑根據 Project.file(java.lang.Object)
進行評估。動作將用於設定新的檔案樹。範例
def myTree = fileTree('src') { exclude '**/.data/**' builtBy 'someTask' } task copy(type: Copy) { from myTree }
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
FileTree
中檔案的順序是不穩定的,即使在同一部電腦上也是如此。
ConfigurableFileTree
fileTree
(Map
<String
, ?>
args)
Map
<String
, ?>使用提供的引數 Map 建立新的 ConfigurableFileTree
。Map 將作為屬性套用至新的檔案樹。範例
def myTree = fileTree(dir:'src', excludes:['**/ignore/**', '**/.data/**']) task copy(type: Copy) { from myTree }
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
FileTree
中檔案的順序是不穩定的,即使在同一部電腦上也是如此。
ConfigurableFileCollection
files
(Object
paths, Closure
configureClosure)
使用給定的路徑建立新的 ConfigurableFileCollection
。路徑根據 Project.files(java.lang.Object[])
進行評估。檔案集合使用給定的閉包進行設定。檔案集合作為其委派傳遞給閉包。範例
files "$buildDir/classes" { builtBy 'compile' }
回傳的檔案集合是延遲載入的,因此只有在查詢檔案集合的內容時才會評估路徑。檔案集合也是即時的,因此每次查詢集合的內容時都會評估上述內容。
ConfigurableFileCollection
files
(Object
paths, Action
<? super ConfigurableFileCollection
>
configureAction)
Action
<? super ConfigurableFileCollection
>使用給定的路徑建立新的 ConfigurableFileCollection
。路徑根據 Project.files(java.lang.Object[])
進行評估。檔案集合使用給定的動作進行設定。範例
files "$buildDir/classes" { builtBy 'compile' }
回傳的檔案集合是延遲載入的,因此只有在查詢檔案集合的內容時才會評估路徑。檔案集合也是即時的,因此每次查詢集合的內容時都會評估上述內容。
ConfigurableFileCollection
files
(Object
...
paths)
Object
...傳回包含給定檔案的 ConfigurableFileCollection
。您可以將以下任何類型傳遞給此方法
- 一個
CharSequence
,包含String
或GString
。 相對於專案目錄進行解釋,如同Project.file(java.lang.Object)
。 以file:
開頭的字串會被視為檔案 URL。 - 一個
File
。 相對於專案目錄進行解釋,如同Project.file(java.lang.Object)
。 - 一個
Path
,如同Project.file(java.lang.Object)
。 - 一個
URI
或URL
。 URL 的路徑會被解釋為檔案路徑。 僅支援file:
URL。 - 一個
Directory
或RegularFile
。 - 一個
Collection
、Iterable
,或是一個包含任何支援類型物件的陣列。 集合中的元素會被遞迴轉換為檔案。 - 一個
FileCollection
。 集合的內容會包含在回傳的集合中。 - 一個
FileTree
或DirectoryTree
。 樹狀結構的內容會包含在回傳的集合中。 - 任何支援類型的
Provider
。 提供者的值會被遞迴轉換為檔案。 如果提供者代表任務的輸出,則當檔案集合被用作另一個任務的輸入時,該任務會被執行。 - 一個
Callable
,會回傳任何支援的類型。call()
方法的回傳值會被遞迴轉換為檔案。null
回傳值會被視為空集合。 - 一個 Groovy
Closure
或 Kotlin 函數,會回傳此處列出的任何類型。 閉包的回傳值會被遞迴轉換為檔案。null
回傳值會被視為空集合。 - 一個
Task
。 轉換為任務的輸出檔案。 當檔案集合被用作另一個任務的輸入時,該任務會被執行。 - 一個
TaskOutputs
。 轉換為相關任務的輸出檔案。 當檔案集合被用作另一個任務的輸入時,該任務會被執行。 - 任何其他內容都會被視為錯誤。
回傳的檔案集合是延遲載入的,因此只有在查詢檔案集合的內容時才會評估路徑。檔案集合也是即時的,因此每次查詢集合的內容時都會評估上述內容。
回傳的檔案集合會維持所提供路徑的迭代順序。
回傳的檔案集合會維持產生檔案的任務的詳細資訊,以便在檔案集合被用作某些任務的輸入時,這些任務會被執行。
此方法也可以用於建立一個空集合,該集合稍後可以被變更以加入元素。
傳回給定屬性的值,如果找不到則傳回 null。此方法按如下方式尋找屬性
- 如果此專案物件具有指定名稱的屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的擴充功能,則傳回該擴充功能。
- 如果此專案的慣例物件具有指定名稱的屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的額外屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的任務,則傳回該任務。
- 在此專案的祖先專案中搜尋具有指定名稱的慣例屬性或額外屬性。
- 如果找不到,則傳回 null 值。
傳回此專案中包含的具有給定名稱的任務集合,以及可選的其子專案。注意: 這是一個昂貴的操作,因為它需要設定所有專案。
ExecResult
javaexec
(Action
<? super JavaExecSpec
>
action)
Action
<? super JavaExecSpec
>注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
執行外部 Java 程序。
給定的 action 會配置一個 JavaExecSpec
,用於啟動程序。此方法會阻塞直到程序終止,並傳回其結果。
void
normalization
(Action
<? super InputNormalizationHandler
>
configuration)
Action
<? super InputNormalizationHandler
>設定輸入正規化。
依路徑尋找專案,並使用給定的閉包設定它。如果路徑是相對路徑,則相對於此專案進行解釋。目標專案作為閉包的委派傳遞給閉包。
依路徑尋找專案,並使用給定的動作設定它。如果路徑是相對路徑,則相對於此專案進行解釋。
傳回給定屬性的值。此方法按如下方式尋找屬性
- 如果此專案物件具有指定名稱的屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的擴充功能,則傳回該擴充功能。
- 如果此專案的慣例物件具有指定名稱的屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的額外屬性,則傳回該屬性的值。
- 如果此專案具有指定名稱的任務,則傳回該任務。
- 在此專案的祖先專案中搜尋具有指定名稱的慣例屬性或額外屬性。
- 如果找不到,則會拋出
MissingPropertyException
。
傳回從專案目錄到給定路徑的相對路徑。給定的路徑物件會 (邏輯上) 根據 Project.file(java.lang.Object)
的描述進行解析,並從中計算相對路徑。
設定此專案的屬性。此方法在以下位置搜尋具有給定名稱的屬性,並在找到屬性的第一個位置設定屬性。
- 專案物件本身。 例如,
rootDir
專案屬性。 - 專案的
Convention
物件。 例如,srcRootName
java 外掛程式屬性。 - 專案的額外屬性。
如果找不到屬性,則會拋出 MissingPropertyException
。
WorkResult
sync
(Action
<? super SyncSpec
>
action)
Action
<? super SyncSpec
>將目的地目錄的內容與某些來源目錄和檔案同步。給定的動作用於設定 SyncSpec
,然後用於同步檔案。
此方法類似於 Project.copy(org.gradle.api.Action)
任務,但目標目錄只會包含複製的檔案。除非指定保留選項,否則在複製檔案之前,將刪除目標目錄中存在的所有檔案。
範例
project.sync { from 'my/shared/dependencyDir' into 'build/deps/compile' }
請注意,您可以保留目標目錄中已存在的輸出
project.sync { from 'source' into 'dest' preserve { include 'extraDir/**' include 'dir1/**' exclude 'dir1/extra.txt' } }
建立一個新的 FileTree
,其中包含給定 TAR 檔案的內容。給定的 tarPath 路徑可以是
- 一個
Resource
的實例 - 任何其他物件都會依照
Project.file(java.lang.Object)
進行評估
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
除非傳遞資源的自訂實作,否則 tar 樹會嘗試根據檔案副檔名猜測壓縮方式。
您可以將此方法與 Project.copy(org.gradle.api.Action)
方法結合使用,以解壓縮 TAR 檔案
task untar(type: Copy) { from tarTree('someCompressedTar.gzip') //tar tree attempts to guess the compression based on the file extension //however if you must specify the compression explicitly you can: from tarTree(resources.gzip('someTar.ext')) //in case you work with unconventionally compressed tars //you can provide your own implementation of a ReadableResource: //from tarTree(yourOwnResource as ReadableResource) into 'dest' }
注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
建立一個具有給定名稱的 Task
,並將其新增至此專案。呼叫此方法等同於呼叫具有空選項 Map 的 Project.task(java.util.Map, java.lang.String)
。
將任務新增至專案後,即可作為專案的屬性使用,以便您可以在組建檔案中依名稱參照任務。 請參閱 屬性 以了解更多詳細資訊
如果具有指定名稱的任務已存在於此專案中,則會拋出例外。
注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
建立一個具有給定名稱的 Task
,並將其新增至此專案。在傳回任務之前,將執行給定的閉包以設定任務。
將任務新增至專案後,即可作為專案的屬性使用,以便您可以在組建檔案中依名稱參照任務。 請參閱 此處 以了解更多詳細資訊
注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
建立一個具有給定名稱的 Task
,並將其新增至此專案。在傳回任務之前,將執行給定的動作以設定任務。
將任務新增至專案後,即可作為專案的屬性使用,以便您可以在組建檔案中依名稱參照任務。 請參閱 此處 以了解更多詳細資訊
注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
建立一個具有給定名稱的 Task
,並將其新增至此專案。可以將建立選項的 Map 傳遞給此方法,以控制任務的建立方式。以下選項可用
選項 | 描述 | 預設值 |
| 要建立的任務類別。 | DefaultTask |
| 取代現有的任務? | false |
| 此任務所依賴的任務名稱或任務名稱集合 | [] |
| 要新增至任務的閉包或 Action 。 | null |
| 任務的描述。 | null |
| 此任務所屬的任務群組。 | null |
將任務新增至專案後,即可作為專案的屬性使用,以便您可以在組建檔案中依名稱參照任務。 請參閱 此處 以了解更多詳細資訊
如果具有指定名稱的任務已存在於此專案中,且 override
選項未設定為 true,則會拋出例外。
注意:此方法已過時,並將在 Gradle 的下一個主要版本中移除。
建立一個具有給定名稱的 Task
,並將其新增至此專案。在傳回任務之前,將執行給定的閉包以設定任務。可以將建立選項的 Map 傳遞給此方法,以控制任務的建立方式。請參閱 Project.task(java.util.Map, java.lang.String)
以取得可用的選項。
將任務新增至專案後,即可作為專案的屬性使用,以便您可以在組建檔案中依名稱參照任務。 請參閱 此處 以了解更多詳細資訊
如果具有指定名稱的任務已存在於此專案中,且 override
選項未設定為 true,則會拋出例外。
將檔案路徑解析為 URI,相對於此專案的專案目錄。根據 Project.file(java.lang.Object)
的描述評估提供的路徑物件,但 'file:' URI 除外,任何 URI 方案都受支援。
建立一個新的 FileTree
,其中包含給定 ZIP 檔案的內容。給定的 zipPath 路徑根據 Project.file(java.lang.Object)
進行評估。您可以將此方法與 Project.copy(org.gradle.api.Action)
方法結合使用,以解壓縮 ZIP 檔案。
回傳的檔案樹是延遲載入的,因此只有在查詢檔案樹的內容時才會掃描檔案。檔案樹也是即時的,因此每次查詢檔案樹的內容時都會掃描檔案。
void
appDirName
(String
appDirName)
允許變更應用程式目錄。預設值為 "src/main/application"。
EarPluginConvention
deploymentDescriptor
(Action
<? super DeploymentDescriptor
>
configureAction)
Action
<? super DeploymentDescriptor
>設定此 EAR 封存檔的部署描述符。
給定的 action 會執行以配置部署描述符。
void
libDirName
(String
libDirName)
允許變更 EAR 檔案中的函式庫目錄。預設值為 "lib"。
針對此專案的 AntBuilder
執行給定的閉包。您可以在您的建置檔中使用此功能來執行 Ant 任務。AntBuild
作為閉包的委派傳遞給閉包。請參閱 Project.getAnt()
的 javadoc 中的範例
- 委派至
- 來自
ant
的AntBuilder
設定此專案發布的產出物。
此方法針對此專案的 ArtifactHandler
執行給定的閉包。ArtifactHandler
作為閉包的委派傳遞給閉包。
範例
configurations { //declaring new configuration that will be used to associate with artifacts schema } task schemaJar(type: Jar) { //some imaginary task that creates a jar artifact with the schema } //associating the task that produces the artifact with the configuration artifacts { //configuration name and the task: schema schemaJar }
- 委派至
- 來自
artifacts
的ArtifactHandler
設定此專案的建置腳本類別路徑。
給定的閉包針對此專案的 ScriptHandler
執行。ScriptHandler
作為閉包的委派傳遞給閉包。
- 委派至
- 來自
buildscript
的ScriptHandler
設定此專案的依賴組態。
此方法會針對此專案的 ConfigurationContainer
執行給定的閉包。ConfigurationContainer
會作為閉包的委派傳遞至閉包。
範例:請參閱 ConfigurationContainer
的文件
- 委派至
- 來自
configurations
的ConfigurationContainer
設定此專案的依賴項。
此方法會針對此專案的 DependencyHandler
執行給定的閉包。DependencyHandler
會作為閉包的委派傳遞至閉包。
範例:請參閱 DependencyHandler
的文件
- 委派至
- 來自
dependencies
的DependencyHandler
設定此專案的儲存庫。
此方法會針對此專案的 RepositoryHandler
執行給定的閉包。RepositoryHandler
會作為閉包的委派傳遞至閉包。
- 委派至
- 來自
repositories
的RepositoryHandler
設定由 distribution 外掛程式新增的 DistributionContainer
。
- 委派至
- 來自
distributions
的DistributionContainer
設定此 EAR 封存檔的部署描述符。
給定的閉包會被執行以設定部署描述符。 DeploymentDescriptor
會作為其委派傳遞至閉包。
設定此專案的來源集。
給定的閉包會被執行以設定 SourceSetContainer
。 SourceSetContainer
會作為其委派傳遞至閉包。
請參閱以下範例,瞭解如何存取 SourceSet
'main',以及如何設定 SourceDirectorySet
'java' 以排除某些套件的編譯。
plugins { id 'java' } sourceSets { main { java { exclude 'some/unwanted/package/**' } } }
- 委派至
- 來自
sourceSets
的SourceSetContainer
設定由 visual-studio 外掛程式新增的 VisualStudioRootExtension
。