簡介

本參考指南描述了構成 Gradle 建置語言或 DSL 的各種類型。

一些基礎知識

您應該了解一些基本概念,這將幫助您編寫 Gradle 腳本。

首先,Gradle 腳本是組態腳本。當腳本執行時,它會組態特定類型的物件。例如,當建置腳本執行時,它會組態類型為 Project 的物件。此物件稱為腳本的委派物件。下表顯示了每種 Gradle 腳本的委派。

腳本類型 委派給以下實例
建置腳本 專案 (Project)
初始化腳本 Gradle
設定腳本 設定 (Settings)

委派物件的屬性和方法可供您在腳本中使用。

其次,每個 Gradle 腳本都實作了 Script 介面。此介面定義了許多您可以在腳本中使用的屬性和方法。

建置腳本結構

建置腳本由零個或多個語句和腳本區塊組成。語句可以包括方法呼叫、屬性賦值和本機變數定義。腳本區塊是將閉包作為參數的方法呼叫。閉包被視為組態閉包,它在執行時組態某些委派物件。頂層腳本區塊如下所示。

區塊描述
allprojects { }

組態此專案及其每個子專案。

artifacts { }

組態此專案的發布 Artifact。

buildscript { }

組態此專案的建置腳本類別路徑。

configurations { }

組態此專案的依賴組態。

dependencies { }

組態此專案的依賴。

repositories { }

組態此專案的儲存庫。

sourceSets { }

組態此專案的原始碼集。

subprojects { }

組態此專案的子專案。

publishing { }

組態由發布外掛程式新增的 PublishingExtension

建置腳本也是 Groovy 腳本,因此可以包含 Groovy 腳本中允許的那些元素,例如方法定義和類別定義。

核心類型

下面列出了一些在 Gradle 腳本中使用的核心類型

類型描述
專案 (Project)

此介面是您用來從建置檔案與 Gradle 互動的主要 API。從 Project,您可以程式化地存取 Gradle 的所有功能。

任務 (Task)

Task 代表建置的單個原子工作單元,例如編譯類別或產生 javadoc。

Gradle

代表 Gradle 的調用。

設定 (Settings)

宣告實例化和組態要參與建置的 Project 實例階層所需的組態。

IncludedBuild

包含在複合建置中的建置。

ProjectLayout

提供對專案幾個重要位置的存取。

BuildLayout

提供對 Gradle 建置重要位置的存取。

腳本 (Script)

所有 Gradle Groovy DSL 腳本都實作了此介面,以新增一些 Gradle 特定的方法。由於您編譯的腳本類別將實作此介面,因此您可以直接在腳本中使用此介面宣告的方法和屬性。

SourceSet

SourceSet 代表 Java 原始碼和資源檔案的邏輯群組。它們在使用者手冊中有更詳細的介紹。

SourceSetOutput

所有輸出目錄(已編譯的類別、已處理的資源等)的集合 - 請注意 SourceSetOutput 擴展了 FileCollection

SourceDirectorySet

SourceDirectorySet 代表由一組原始碼目錄以及相關聯的包含和排除模式組成的原始碼檔案集。

Configuration

Configuration 代表 Artifact 及其依賴的群組。在 ConfigurationContainer 的文件中找到有關宣告組態的依賴或管理組態的更多資訊

ConsumableConfiguration

Configuration 可以透過發布和依賴管理來使用的。

ResolvableConfiguration

Configuration 執行依賴解析以建置依賴圖表並解析 Artifact。

DependencyScopeConfiguration

Configuration 收集依賴、依賴約束和排除規則。

ResolutionStrategy

定義圍繞依賴解析的策略。例如,強制某些依賴版本、替換、衝突解析或快照逾時。

ArtifactResolutionQuery

用於建構查詢的建構器,該查詢可以解析指定組件的選定軟體 Artifact。

ComponentSelection

代表模組的組件選擇器和要在組件選擇規則中評估的候選版本的元組。

ComponentSelectionRules

代表組件選擇規則的容器。規則可以作為組態的 resolutionStrategy 的一部分應用,並且可以透過規則顯式接受或拒絕單個組件。既未接受也未拒絕的組件將受預設版本匹配策略的約束。

DependencyCollector

DependencyCollector 在 DSL 中的依賴區塊中用作一部分。收集器實作單個依賴範圍,並在 DependencyCollector.getDependencies() 上公開宣告的依賴。

ExtensionAware

可以在運行時使用其他物件擴展的物件。

ExtraPropertiesExtension

Gradle 網域物件的額外、特設屬性。

PluginDependenciesSpec

用於宣告要在腳本中使用的外掛程式的 DSL。

PluginDependencySpec

外掛程式依賴的可變規範。

PluginManagementSpec

組態如何解析外掛程式。

ProviderFactory

用於建立 Provider 實例的工廠。

ResourceHandler

提供對資源特定公用程式方法的存取,例如建立各種資源的工廠方法。

TextResourceFactory

建立由來源(例如字串、檔案和歸檔項目)支援的 TextResource

InputChanges

提供對增量工作動作需要處理的任何輸入檔案的存取。

Distribution

發行版允許捆綁應用程式或程式庫,包括依賴、原始碼...

發布類型

下面列出了用於組態發布的類型

類型描述
PublishingExtension

如何「發布」專案的不同組件的組態。

IvyPublication

IvyPublication 是 Gradle 應如何在 Ivy 格式中發布到 Ivy 儲存庫的表示/組態。您可以透過提供 IvyPublication 作為類型,直接將命名的 Ivy 發布新增到專案的 publishing.publications 容器。

IvyArtifact

作為 IvyPublication 一部分發布的 Artifact。

IvyArtifactSet

IvyArtifact 的集合,將包含在 IvyPublication 中。作為 DomainObjectSetIvyArtifactSet 提供了方便的方法來查詢、篩選和將動作應用於 IvyArtifact 的集合。

IvyModuleDescriptorSpec

任何 Ivy 發布的描述符。

IvyModuleDescriptorAuthor

Ivy 發布的作者。

IvyModuleDescriptorLicense

Ivy 發布的許可證。

IvyModuleDescriptorDescription

Ivy 發布的描述。

MavenPublication

MavenPublication 是 Gradle 應如何在 Maven 格式中發布的表示/組態。您可以透過提供 MavenPublication 作為類型,直接將命名的 Maven 發布新增到專案的 publishing.publications 容器。

MavenArtifact

作為 MavenPublication 一部分發布的 Artifact。

MavenArtifactSet

MavenArtifact 的集合,將包含在 MavenPublication 中。作為 DomainObjectSetMavenArtifactSet 提供了方便的方法來查詢、篩選和將動作應用於 MavenArtifact 的集合。

MavenPom

Maven 發布的 POM。

MavenPomCiManagement

Maven 發布的 CI 管理系統。

MavenPomContributor

Maven 發布的貢獻者。

MavenPomContributorSpec

允許新增 Maven 發布的貢獻者。

MavenPomDeveloper

Maven 發布的開發人員。

MavenPomDeveloperSpec

允許將開發人員新增到 Maven 發布。

MavenPomDistributionManagement

Maven 發布的發行管理組態。

MavenPomIssueManagement

Maven 發布的問題管理系統。

MavenPomLicense

Maven 發布的許可證。

MavenPomLicenseSpec

允許將許可證新增到 Maven 發布。

MavenPomMailingList

Maven 發布的郵件列表。

MavenPomMailingListSpec

允許將郵件列表新增到 Maven 發布。

MavenPomOrganization

Maven 發布的組織。

MavenPomRelocation

已移動到新群組和/或 Artifact ID 的 Maven 發布的重新定位資訊。

MavenPomScm

Maven 發布的 SCM(原始碼控制管理)。

容器類型

處理各種宣告式元素(例如,依賴、組態、Artifact、任務等)的容器類型

類型描述
TaskContainer

TaskContainer 負責管理一組 Task 實例。

ConfigurationContainer

ConfigurationContainer 負責宣告和管理組態。另請參閱 Configuration

RepositoryHandler

RepositoryHandler 管理一組儲存庫,允許定義和查詢儲存庫。

DependencyHandler

DependencyHandler 用於宣告依賴。依賴被分組到組態中(請參閱 Configuration)。

ComponentMetadataHandler

允許建置提供修改依賴軟體組件元資料的規則。組件元資料規則應用於建置腳本的依賴區塊 DependencyHandler 的組件部分。規則可以用兩種不同的方式定義

ArtifactHandler

此類別用於定義要發布的 Artifact 並將其新增到組態。建立發布 Artifact 並不意味著建立歸檔。建立的是網域物件,它代表要發布的檔案以及有關應如何發布的資訊(例如,名稱)。

驗證類型

用於連線到儲存庫的憑證和驗證類型

類型描述
AuthenticationSupported

支援使用者名稱/密碼驗證的 Artifact 儲存庫。

Credentials

用於不同驗證目的憑證的基本介面。(例如,驗證的 RepositoryHandler

PasswordCredentials

可用於登入受密碼保護的遠端儲存庫的使用者名稱/密碼憑證。

AwsCredentials

代表用於透過 Amazon Web Services 驗證的憑證。

HttpHeaderCredentials

可用於使用 HTTP 標頭登入受保護伺服器(例如,遠端儲存庫)的憑證。用於從屬性建立憑證的屬性是 repoAuthHeaderNamerepoAuthHeaderValue,其中 repo 是儲存庫的身份。

AuthenticationContainer

用於組態 Authentication 類型的儲存庫驗證方案的容器。

Authentication

傳輸驗證方案的基本介面。

BasicAuthentication

透過 HTTP 進行基本存取驗證的驗證方案。使用此方案時,憑證會被搶先傳送。

HttpHeaderAuthentication

透過 HTTP 進行 HTTP 標頭驗證的驗證方案。

DigestAuthentication

透過 HTTP 進行摘要存取驗證的驗證方案。

建置快取類型

用於連線和組態建置快取的類型

類型描述
BuildCacheConfiguration

整個 Gradle 建置的 建置快取 的組態。

DirectoryBuildCache

本機目錄建置快取的組態物件。

HttpBuildCache

HTTP 建置快取的組態物件。快取項目透過 GET 載入,並透過 PUT 請求儲存。

輸入正規化類型

用於組態輸入正規化的類型

類型描述
InputNormalizationHandler

用於組態輸入正規化。目前,只能組態運行時類別路徑正規化。

InputNormalization

輸入正規化組態。當 Gradle 嘗試確定兩個任務輸入是否不同時,會使用輸入正規化。Gradle 正規化兩個輸入,並且僅當正規化不同時,輸入才被認為是不同的。

RuntimeClasspathNormalization

運行時類別路徑正規化的組態。

說明任務類型

以下是每個 Gradle 專案可用的任務類型。這些任務類型也可以直接在建置腳本中宣告和組態。

類型描述
TaskReportTask

顯示專案中的任務列表。當您從命令列執行 tasks 任務時,會使用此類型的實例。

ProjectReportTask

顯示建置中的專案列表。當您從命令列執行 projects 任務時,會使用此類型的實例。

DependencyReportTask

顯示專案的依賴樹。當您從命令列執行 dependencies 任務時,會使用此類型的實例。

DependencyInsightReportTask

產生一個報告,試圖回答諸如以下問題

PropertyReportTask

顯示專案的屬性。當您從命令列執行 properties 任務時,會使用此類型的實例。

ComponentReport

顯示有關專案產生的軟體組件的一些詳細資訊。

DependentComponentsReport

顯示依賴組件。

ModelReport

顯示有關專案組態模型的一些詳細資訊。當您從命令列執行 model 任務時,會使用此類型的實例。

OutgoingVariantsReportTask

一個任務,用於在命令列上報告專案的傳出變體。這對於列出專案在變體方面產生什麼以及每個變體附加了哪些 Artifact 非常有用。在此上下文中,變體必須理解為「專案產生的可以安全地被另一個專案使用的東西」。

ResolvableConfigurationsReportTask

一個任務,用於報告專案的可解析組態,這些組態可以在命令列上解析。這對於確定哪些屬性與用於解析專案依賴關係的可解析組態相關聯非常有用。輸出可以幫助預測將解析每個依賴的哪個變體。

ArtifactTransformsReportTask

一個任務,用於報告有關專案使用的 Artifact 轉換(由 TransformAction 實作)的資訊。這對於調查不明確的轉換場景非常有用。輸出可以幫助預測需要修改哪些轉換以消除歧義。

任務類型

下面列出了可在您的建置腳本中使用的各種任務類型

類型描述
AntlrTask

從 Antlr 文法產生剖析器。

BuildEnvironmentReportTask

提供有關與任務關聯的專案的建置環境的資訊。

Checkstyle

針對某些原始碼檔案執行 Checkstyle。

CodeNarc

針對某些原始碼檔案執行 CodeNarc。

Copy

將檔案複製到目標目錄中。此任務還可以在複製時重新命名和篩選檔案。該任務實作了 CopySpec 以指定要複製的內容。

CreateStartScripts

建立用於啟動 JVM 應用程式的啟動腳本。

Delete

刪除檔案或目錄。範例

Ear

組裝 EAR 歸檔。

Exec

執行命令列程序。範例

GenerateIvyDescriptor

產生 Ivy XML 模組描述符檔案。

GenerateMavenPom

產生 Maven 模組描述符 (POM) 檔案。

GenerateBuildDashboard

產生建置儀表板報告。

GradleBuild

執行 Gradle 建置。

GroovyCompile

編譯 Groovy 原始碼檔案,以及可選的 Java 原始碼檔案。

Groovydoc

為 Groovy 原始碼以及可選的 Java 原始碼產生 HTML API 文件。

HtmlDependencyReportTask

產生 HTML 依賴報告。此報告結合了 ASCII 依賴報告和 ASCII 依賴深入分析報告的功能。對於給定的專案,它產生每個組態的依賴樹,並且可以點擊每個依賴以顯示此依賴的深入分析。

JacocoReport

產生 Jacoco 覆蓋率資料的 HTML、Xml 和 CSV 報告的任務。

JacocoCoverageVerification

用於驗證程式碼覆蓋率指標的任務。如果根據指定的規則檢測到違規,則任務失敗。

Jar

組裝 JAR 歸檔。

JavaCompile

編譯 Java 原始碼檔案。

Javadoc

產生 Java 類別的 HTML API 文件。

JavaExec

在子程序中執行 Java 應用程式。

Pmd

對 Java 原始碼檔案執行一組靜態程式碼分析規則,並產生找到的問題的報告。

ProcessResources

將資源從其來源複製到其目標目錄,可能會處理它們。確保目標目錄中沒有剩餘的過時資源。

PublishToIvyRepository

將 IvyPublication 發布到 IvyArtifactRepository。

PublishToMavenRepository

MavenPublication 發布到 MavenArtifactRepository

ScalaCompile

編譯 Scala 原始碼檔案,以及可選的 Java 原始碼檔案。

ScalaDoc

產生 Scala 原始碼檔案的 HTML API 文件。

UpdateDaemonJvm

產生或更新 Gradle Daemon JVM 標準。這控制執行 Gradle Daemon 所需的 JVM 版本。

InitBuild

產生 Gradle 專案結構。

Sign

用於為一個或多個任務、檔案、可發布 Artifact 或組態建立數位簽名檔案的任務。

Sync

將目標目錄的內容與某些原始碼目錄和檔案同步。

Tar

組裝 TAR 歸檔。

AbstractTestTask

所有測試任務的抽象類別。

Test

執行 JUnit (3.8.x、4.x 或 5.x) 或 TestNG 測試。測試始終在(一個或多個)單獨的 JVM 中運行。

TestReport

從一個或多個 Test 任務的結果產生 HTML 測試報告。

War

組裝 WAR 歸檔。

Wrapper

產生腳本(適用於 *nix 和 windows),讓您可以使用 Gradle 建置專案,而無需安裝 Gradle。

WriteProperties

以預期結果可重現的方式寫入 Properties

Zip

組裝 ZIP 歸檔。預設設定是壓縮 zip 的內容。

測試類型

下面列出了與建模測試套件相關的任務和可組態物件

類型描述
TestingExtension

此 DSL 元素存在以包含 TestSuite 的集合。

TestSuite

基本測試套件組件。測試套件是測試的集合。

JvmTestSuite

測試套件是基於 JVM 的測試的集合。

TestSuiteTarget

基本測試套件目標。測試套件目標是在特定環境(作業系統、Java 運行時等)中運行的測試集合。

JvmTestSuiteTarget

定義 JvmTestSuite 將在其上運行的目標環境。

Test

執行 JUnit (3.8.x、4.x 或 5.x) 或 TestNG 測試。測試始終在(一個或多個)單獨的 JVM 中運行。

Dependencies

適用於所有 dependencies 區塊的通用 API。

GradleDependencies

適用於 dependencies 區塊的依賴 API,這些區塊可以建置依賴於 Gradle API 的軟體。

TestFixturesDependencyModifiers

可以在其他模組中為 dependencies 區塊尋找測試夾具的依賴修飾符 API。

PlatformDependencyModifiers

可以在其他模組中為 dependencies 區塊尋找平台和強制平台的依賴修飾符 API。

JvmComponentDependencies

此 DSL 元素用於將依賴新增到組件,例如 TestSuite

報告類型

下面列出了一些在產生報告時使用的類型

類型描述
CustomizableHtmlReport

可以透過 XSLT 樣式表自訂其產生的 HTML 報告。

SingleFileReport

作為單個檔案的報告。

DirectoryReport

要建立的基於目錄的報告。

Report

要建立的基於檔案的報告。

Reporting

提供報告選項的物件。

ReportContainer

代表潛在報告的 Report 物件的容器。

ReportingExtension

名為「reporting」的專案擴展,提供基本報告設定和公用程式。

AggregateTestReport

彙總測試報告輸入的容器。

JacocoCoverageReport

彙總 JaCoCo 程式碼覆蓋率報告輸入的容器。

Eclipse/IDEA 模型類型

用於組態 Eclipse 或 IDEA 外掛程式

類型描述
EclipseModel

Eclipse 專案資訊的 DSL 友善模型。自訂 Eclipse 專案產生的第一個入口點。

EclipseProject

啟用微調 Eclipse 外掛程式的專案詳細資訊 (.project 檔案)

EclipseClasspath

產生的 Eclipse 專案的建置路徑設定。GenerateEclipseClasspath 任務用於產生 Eclipse .classpath 檔案。

EclipseJdt

啟用微調 Eclipse 外掛程式的 jdt 詳細資訊

EclipseWtp

啟用微調 Eclipse 外掛程式的 wtp/wst 詳細資訊

EclipseWtpComponent

啟用微調 Eclipse 外掛程式的 wtp 組件詳細資訊

EclipseWtpFacet

啟用微調 Eclipse 外掛程式的 wtp facet 詳細資訊

IdeaModel

IDEA 專案資訊的 DSL 友善模型。自訂 IDEA 產生時的第一個入口點。

IdeaProject

啟用微調 IDEA 外掛程式的專案詳細資訊 (*.ipr 檔案)。

IdeaModule

啟用微調 IDEA 外掛程式的模組詳細資訊 (*.iml 檔案)。

IdeaWorkspace

啟用微調 IDEA 外掛程式的工作區詳細資訊 (*.iws 檔案)。

XmlFileContentMerger

建模產生/剖析/合併功能。新增 XML 相關的掛鉤。

FileContentMerger

建模產生/剖析/合併功能。

Eclipse/IDEA 任務類型

IDE 外掛程式貢獻的任務。若要組態 IDE 外掛程式,請使用 IDE 模型類型。

類型描述
GenerateEclipseProject

產生 Eclipse .project 檔案。如果您想微調 eclipse 組態

GenerateEclipseClasspath

產生 Eclipse .classpath 檔案。如果您想微調 eclipse 組態

GenerateEclipseJdt

產生 Eclipse JDT 組態檔案。如果您想微調 eclipse 組態

GenerateEclipseWtpComponent

產生 Eclipse WTP 的 org.eclipse.wst.common.component 設定檔案。如果您想微調 eclipse 組態

GenerateEclipseWtpFacet

產生 Eclipse WTP 的 org.eclipse.wst.common.project.facet.core 設定檔案。如果您想微調 eclipse 組態

GenerateIdeaModule

產生 IDEA 模組檔案。如果您想微調 idea 組態

GenerateIdeaProject

僅針對根專案產生 IDEA 專案檔案 *。如果您想微調 idea 組態

GenerateIdeaWorkspace

僅針對根專案產生 IDEA 工作區檔案 *。目前,您幾乎無法組態工作區產生。

Xcode 任務類型

Xcode IDE 外掛程式貢獻的任務。若要組態 IDE 外掛程式,請使用 IDE 模型類型。

類型描述
GenerateSchemeFileTask

用於產生 Xcode scheme 檔案的任務 (例如 Foo.xcodeproj/xcshareddata/xcschemes/Foo.xcscheme)。Xcode scheme 定義要建置的目標集合、建置時要使用的組態以及要執行的測試集合。

GenerateWorkspaceSettingsFileTask

用於產生 Xcode 工作區設定檔案的任務 (例如 Foo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings)。

GenerateXcodeProjectFileTask

用於產生 Xcode 專案檔案的任務 (例如 Foo.xcodeproj/project.pbxproj)。專案包含用於建置產品的所有元素,並維護這些元素之間的關係。它包含一個或多個目標,這些目標指定如何建置產品。專案為專案中的所有目標定義預設建置設定(每個目標也可以指定自己的建置設定,這會覆寫專案建置設定)。

GenerateXcodeWorkspaceFileTask

用於產生 Xcode 工作區檔案 (例如 Foo.xcworkspace/contents.xcworkspacedata) 的任務。一個工作區可以包含任意數量的 Xcode 專案。

Visual Studio 工作類型

由 Visual Studio IDE 外掛程式貢獻的任務。若要設定 IDE 外掛程式,請使用 IDE 模型類型。

類型描述
GenerateSolutionFileTask

用於產生 Visual Studio 方案檔案 (例如 foo.sln) 的任務。

GenerateProjectFileTask

用於產生 Visual Studio 專案檔案 (例如 foo.vcxproj) 的任務。

GenerateFiltersFileTask

用於產生 Visual Studio 篩選器檔案 (例如 foo.vcxproj.filters) 的任務。

Artifact 轉換類型

用於定義 Artifact 轉換。

類型描述
TransformAction

Artifact 轉換動作的介面。

TransformOutputs

Artifact 轉換的輸出。

TransformSpec

Artifact 轉換註冊的基本設定。

原生工具鏈模型類型

用於設定建置 C++ 和 Swift 組件的工具鏈。

類型描述
Gcc

GNU GCC 工具鏈。

Clang

Clang 工具鏈。

VisualCpp

Visual C++ 工具鏈。

Swiftc

Swift Compiler 工具鏈。

原生軟體模型類型

用於設定以原生程式碼開發的軟體組件。

類型描述
PrebuiltLibrary

一個非由 Gradle 建置的程式庫組件。

PrebuiltSharedLibraryBinary

一個存在於檔案系統上已知位置的共享程式庫。

PrebuiltStaticLibraryBinary

一個存在於檔案系統上已知位置的靜態程式庫。

NativeComponentSpec

軟體組件的定義,該組件將由 Gradle 建置以在 JVM 平台上執行。

NativeExecutableSpec

原生可執行組件的定義,該組件將由 Gradle 建置。

NativeLibrarySpec

原生程式庫組件的定義,該組件將由 Gradle 建置。

NativeTestSuiteSpec

代表將一起執行的測試套件的組件。

CUnitTestSuiteSpec

CUnit 測試的測試套件。

GoogleTestTestSuiteSpec

Google Test 測試的測試套件。

NativeBinarySpec

代表作為建置原生組件結果的二進位 Artifact。

NativeExecutableBinarySpec

由 Gradle 為原生應用程式建置的二進位檔。

NativeLibraryBinarySpec

代表作為建置原生程式庫組件結果的二進位 Artifact。

SharedLibraryBinarySpec

由 Gradle 為原生程式庫建置的共享程式庫二進位檔。

StaticLibraryBinarySpec

由 Gradle 為原生程式庫建置的靜態程式庫二進位檔。

NativeTestSuiteBinarySpec

一個執行測試套件的可執行檔。

CUnitTestSuiteBinarySpec

一個執行 CUnit 測試套件的可執行檔。

GoogleTestTestSuiteBinarySpec

一個執行 Google Test 測試套件的可執行檔。

NativePlatform

用於建置原生二進位檔的目標平台。每個目標平台都有一個名稱,並且可以選擇性地給定特定的 Architecture 和/或 OperatingSystem 作為目標。

BuildType

指定原生二進位檔的建置類型。常見的建置類型為 'debug' 和 'release',但也可以定義其他類型。

Flavor

定義一個自訂變體,用於區分 NativeBinary

AssemblerSourceSet

一組組合語言原始碼。

CSourceSet

一組 C 原始碼檔案。

CppSourceSet

一組 C++ 原始碼檔案。

ObjectiveCSourceSet

一組 Objective-C 原始碼檔案。

ObjectiveCppSourceSet

一組 Objective-C++ 原始碼檔案。

WindowsResourceSet

一組 Windows 資源定義檔案。

VisualStudioProject

一個 Visual Studio 專案,由一個或多個原生二進位檔建立。

VisualStudioSolution

一個 Visual Studio 方案,代表建置中的一個或多個原生二進位檔。

NativeExecutable

一個由 Gradle 建置的可執行原生組件。

NativeLibrary

一個由 Gradle 專案建置的程式庫組件。

NativeBinary

代表特定的二進位 Artifact。

NativeExecutableBinary

NativeExecutable 的二進位 Artifact,目標為具有特定設定的特定平台。

SharedLibraryBinary

已編譯並連結為共享程式庫的 NativeLibrary

StaticLibraryBinary

已編譯並封存到靜態程式庫中的 NativeLibrary

C++ 組件模型類型

用於設定 C++ 組件。

類型描述
CppApplication

C++ 應用程式的設定,定義構成應用程式的原始碼檔案以及其他設定。

CppLibrary

C++ 程式庫的設定,定義構成程式庫的原始碼檔案和標頭目錄以及其他設定。

CppTestSuite

一個 C++ 測試套件。

Swift 組件模型類型

用於設定 Swift 組件。

類型描述
SwiftApplication

Swift 應用程式的設定,定義構成應用程式的原始碼檔案以及其他設定。

SwiftLibrary

Swift 程式庫的設定,定義構成程式庫的原始碼檔案以及其他設定。

SwiftXCTestSuite

一個以 Swift 實作的 XCTest 套件。

原生二進位檔任務類型

用於建置原生二進位檔的任務。

類型描述
CppCompile

將 C++ 原始碼檔案編譯成物件檔案。

SwiftCompile

將 Swift 原始碼檔案編譯成物件檔案。

LinkExecutable

從物件檔案和程式庫連結二進位可執行檔。

LinkSharedLibrary

從物件檔案和匯入的程式庫連結二進位共享程式庫。

CreateStaticLibrary

從物件檔案組裝靜態程式庫。

LinkMachOBundle

從物件檔案和匯入的程式庫連結二進位套件 (bundle)。

InstallExecutable

安裝可執行檔及其相依程式庫,以便輕鬆執行。

InstallXCTestBundle

建立包含執行腳本的 XCTest 套件 (bundle),以便輕鬆執行。

RunTestExecutable

執行已編譯和安裝的測試可執行檔。

XCTest

執行 XCTest 測試。測試始終在單次執行中執行。

原生二進位檔任務類型

用於建置原生二進位檔的任務。

類型描述
C 編譯

將 C 原始碼檔案編譯成物件檔案。

組裝

將組合語言原始碼檔案翻譯成物件檔案。

Objective-C 編譯

將 Objective-C 原始碼檔案編譯成物件檔案。

Objective-C++ 編譯

將 Objective-C++ 原始碼檔案編譯成物件檔案。

Windows 資源編譯

將 Windows 資源腳本編譯成 .res 檔案。