引言

本参考指南描述了构成 Gradle 构建语言或 DSL 的各种类型。

一些基础知识

有一些基本概念你应该了解,它们将有助于你编写 Gradle 脚本。

首先,Gradle 脚本是 配置脚本。当脚本执行时,它会配置一个特定类型的对象。例如,当构建脚本执行时,它会配置一个 Project 类型的对象。这个对象被称为脚本的 委托对象。下表显示了每种 Gradle 脚本类型的委托对象。

脚本类型 委托给以下实例
构建脚本 Project
初始化脚本 Gradle
设置脚本 Settings

委托对象的属性和方法可在脚本中使用。

其次,每个 Gradle 脚本都实现了 Script 接口。该接口定义了可在脚本中使用的许多属性和方法。

构建脚本结构

构建脚本由零个或多个语句和脚本块组成。语句可以包括方法调用、属性赋值和局部变量定义。脚本块是接收闭包作为参数的方法调用。该闭包被视为一个 配置闭包,它在执行时会配置某个委托对象。顶层脚本块如下所示。

描述
allprojects { }

配置当前项目及其每个子项目。

artifacts { }

配置当前项目的已发布制品。

buildscript { }

配置当前项目的构建脚本 classpath。

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 表示一组制品及其依赖项。有关向配置声明依赖项或管理配置的更多信息,请参阅 ConfigurationContainer 的文档。

ConsumableConfiguration

一个可以通过发布和依赖管理消费的 Configuration

ResolvableConfiguration

一个执行依赖解析以构建依赖图并解析制品的 Configuration

DependencyScopeConfiguration

一个收集依赖项、依赖约束和排除规则的 Configuration

ResolutionStrategy

定义了围绕依赖解析的策略。例如,强制使用特定的依赖版本、替换、冲突解决或快照超时设置。

ArtifactResolutionQuery

一个构建器,用于构造可以解析指定组件的选定软件制品的查询。

ComponentSelection

表示一个模块的组件选择器和在组件选择规则中评估的候选版本组成的元组。

ComponentSelectionRules

表示组件选择规则的容器。规则可以作为配置的 resolutionStrategy 的一部分应用,单个组件可以根据规则明确接受或拒绝。既未接受也未拒绝的组件将遵循默认的版本匹配策略。

DependencyCollector

一个 DependencyCollector 在 DSL 中用作 dependencies 块的一部分。收集器实现单个依赖范围,并在 DependencyCollector.getDependencies() 上暴露声明的依赖项。

ExtensionAware

可以在运行时通过其他对象进行扩展的对象。

ExtraPropertiesExtension

Gradle 领域对象的额外、即席属性。

PluginDependenciesSpec

用于在脚本中声明要使用的插件的 DSL。

PluginDependencySpec

插件依赖项的可变规范。

PluginManagementSpec

配置如何解析插件。

ProviderFactory

用于创建 Provider 实例的工厂。

ResourceHandler

提供了访问特定于资源的实用方法,例如创建各种资源的工厂方法。

TextResourceFactory

创建由字符串、文件和归档条目等源支持的 TextResource

InputChanges

提供了访问需要由增量工作操作处理的所有输入文件的途径。

Distribution

发行版允许捆绑应用程序或库,包括依赖项、源代码等...

发布类型

下面列出了用于配置发布的类型

类型描述
PublishingExtension

配置如何“发布”项目的不同组件。

IvyPublication

一个 IvyPublication 是 Gradle 如何以 Ivy 格式发布内容到 Ivy 仓库的表示/配置。通过提供 IvyPublication 作为类型,你可以直接向项目的 publishing.publications 容器添加一个命名 Ivy 发布项。

IvyArtifact

作为 IvyPublication 的一部分发布的制品。

IvyArtifactSet

一组要包含在 IvyPublication 中的 IvyArtifact 集合。作为 DomainObjectSetIvyArtifactSet 提供了便捷的方法来查询、过滤和对 IvyArtifact 集合应用操作。

IvyModuleDescriptorSpec

任何 Ivy 发布项的描述符。

IvyModuleDescriptorAuthor

Ivy 发布项的作者。

IvyModuleDescriptorLicense

Ivy 发布项的许可证。

IvyModuleDescriptorDescription

Ivy 发布项的描述。

MavenPublication

一个 MavenPublication 是 Gradle 如何以 Maven 格式发布内容的表示/配置。通过提供 MavenPublication 作为类型,你可以直接向项目的 publishing.publications 容器添加一个命名 Maven 发布项。

MavenArtifact

作为 MavenPublication 的一部分发布的制品。

MavenArtifactSet

一组要包含在 MavenPublication 中的 MavenArtifact 集合。作为 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

已迁移到新 group 和/或 artifact ID 的 Maven 发布项的重定位信息。

MavenPomScm

Maven 发布项的 SCM (源代码管理)。

容器类型

处理各种声明性元素(例如依赖项、配置、制品、任务等)的容器类型。

类型描述
TaskContainer

一个 TaskContainer 负责管理一组 Task 实例。

ConfigurationContainer

一个 ConfigurationContainer 负责声明和管理配置。另请参阅 Configuration

RepositoryHandler

一个 RepositoryHandler 管理一组仓库,允许定义和查询仓库。

DependencyHandler

一个 DependencyHandler 用于声明依赖项。依赖项被分组到配置中(参见 Configuration)。

ComponentMetadataHandler

允许构建提供修改被依赖软件组件元数据的规则。组件元数据规则应用于构建脚本的 dependencies 块 DependencyHandler 的 components 部分。规则可以通过两种不同的方式定义

ArtifactHandler

这个类用于定义要发布的制品并将它们添加到配置中。创建发布的制品并不意味着创建归档文件。创建的是一个表示待发布文件及其如何发布的领域对象(例如名称)。

认证类型

连接仓库所需的凭据和认证类型

类型描述
AuthenticationSupported

支持用户名/密码认证的制品仓库。

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

用于配置输入规范化。目前,只能配置运行时 classpath 规范化。

InputNormalization

输入规范化配置。当 Gradle 尝试确定两个任务输入是否不同时,会使用输入规范化。Gradle 会规范化两个输入,当且仅当规范化结果不同时,输入才被视为不同。

RuntimeClasspathNormalization

运行时 classpath 规范化配置。

帮助任务类型

下面列出了每个 Gradle 项目可用的任务类型。这些任务类型也可以在构建脚本中直接声明和配置。

类型描述
TaskReportTask

显示项目中的任务列表。当你从命令行执行 tasks 任务时,会使用此类型的实例。

ProjectReportTask

显示构建中的项目列表。当你从命令行执行 projects 任务时,会使用此类型的实例。

DependencyReportTask

显示项目的依赖树。当你从命令行执行 dependencies 任务时,会使用此类型的实例。

DependencyInsightReportTask

生成一个报告,尝试回答以下问题,例如

PropertyReportTask

显示项目的属性。当你从命令行执行 properties 任务时,会使用此类型的实例。

ComponentReport

显示有关项目生成的软件组件的一些详细信息。

DependentComponentsReport

显示依赖组件。

ModelReport

显示项目配置模型的一些详细信息。当你从命令行执行 model 任务时,会使用此类型的实例。

OutgoingVariantsReportTask

一个在命令行上报告项目输出变体的任务。这对于列出项目在变体方面生成的内容以及每个变体附加的制品很有用。在此上下文中,变体必须理解为“项目生成的可安全地被其他项目消费的内容”。

ResolvableConfigurationsReportTask

一个在命令行上报告项目可解析配置的任务。这对于确定与用于解析项目依赖项的可解析配置关联的属性很有用。输出可以帮助预测每个依赖项的哪个变体将被解析。

ArtifactTransformsReportTask

一个报告项目使用的制品转换(由 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 源代码生成 HTML API 文档,以及可选地,Java 源代码。

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

一个用于为一个或多个任务、文件、可发布制品或配置创建数字签名文件的任务。

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

对可以构建依赖于 Gradle API 的软件的 dependencies 块可用的依赖项 API。

TestFixturesDependencyModifiers

可以在其他模块中查找 test fixtures 的依赖项修饰符 API,适用于 dependencies 块。

PlatformDependencyModifiers

可以在其他模块中查找 platform 和 enforced platforms 的依赖项修饰符 API,适用于 dependencies 块。

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 编译器 的工具链。

原生软件模型类型

用于配置使用原生代码开发的软件组件。

类型描述
PrebuiltLibrary

一个不是由 Gradle 构建的库组件。

PrebuiltSharedLibraryBinary

一个存在于文件系统上已知位置的共享库。

PrebuiltStaticLibraryBinary

一个存在于文件系统上已知位置的静态库。

NativeComponentSpec

将由 Gradle 构建并在 JVM 平台上运行的软件组件的定义。

NativeExecutableSpec

将由 Gradle 构建的原生可执行组件的定义。

NativeLibrarySpec

将由 Gradle 构建的原生库组件的定义。

NativeTestSuiteSpec

表示一组将一起执行的测试的组件。

CUnitTestSuiteSpec

CUnit 测试的测试套件。

GoogleTestTestSuiteSpec

Google Test 测试的测试套件。

NativeBinarySpec

表示构建原生组件所产生的二进制工件。

NativeExecutableBinarySpec

Gradle 为原生应用程序构建的二进制文件。

NativeLibraryBinarySpec

表示构建原生库组件所产生的二进制工件。

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

表示一个特定的二进制工件。

NativeExecutableBinary

NativeExecutable 的二进制工件,针对具有特定配置的特定平台。

SharedLibraryBinary

已被编译并链接为共享库的 NativeLibrary

StaticLibraryBinary

已被编译并打包成静态库的 NativeLibrary

C++ 组件模型类型

用于配置 C++ 组件。

类型描述
CppApplication

C++ 应用程序的配置,定义构成应用程序的源文件加上其他设置。

CppLibrary

C++ 库的配置,定义构成库的源文件和头文件目录加上其他设置。

CppTestSuite

一个 C++ 测试套件。

Swift 组件模型类型

用于配置 Swift 组件。

类型描述
SwiftApplication

Swift 应用程序的配置,定义构成应用程序的源文件加上其他设置。

SwiftLibrary

Swift 库的配置,定义构成库的源文件加上其他设置。

SwiftXCTestSuite

一个 XCTest 测试套件,使用 Swift 实现。

原生二进制任务类型

用于构建原生二进制文件的任务。

类型描述
CppCompile

将 C++ 源文件编译成目标文件。

SwiftCompile

将 Swift 源文件编译成目标文件。

LinkExecutable

从目标文件和库链接二进制可执行文件。

LinkSharedLibrary

从目标文件和导入库链接二进制共享库。

CreateStaticLibrary

从目标文件打包静态库。

LinkMachOBundle

从目标文件和导入库链接二进制包。

InstallExecutable

安装可执行文件及其依赖库,以便于执行。

InstallXCTestBundle

创建一个带有运行脚本的 XCTest 包,以便于执行。

RunTestExecutable

运行已编译和安装的测试可执行文件。

XCTest

执行 XCTest 测试。测试始终在单次执行中运行。

原生二进制任务类型

用于构建原生二进制文件的任务。

类型描述
CCompile

将 C 源文件编译成目标文件。

Assemble

将汇编语言源文件翻译成目标文件。

ObjectiveCCompile

将 Objective-C 源文件编译成目标文件。

ObjectiveCppCompile

将 Objective-C++ 源文件编译成目标文件。

WindowsResourceCompile

将 Windows 资源脚本编译成 .res 文件。