简介

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

一些基础知识

您应该理解一些基本概念,这将帮助您编写 Gradle 脚本。

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

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

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

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

构建脚本结构

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

描述
allprojects { }

配置此项目及其每个子项目。

artifacts { }

配置此项目已发布的 Artifact。

buildscript { }

配置此项目的构建脚本类路径。

configurations { }

配置此项目的依赖配置。

dependencies { }

配置此项目的依赖项。

repositories { }

配置此项目的仓库。

sourceSets { }

配置此项目的源集。

subprojects { }

配置此项目的子项目。

publishing { }

配置由 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 的 dependencies 块中用作一部分。收集器实现单个依赖项范围,并在 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

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

IvyModuleDescriptorSpec

任何 Ivy 发布版本的描述符。

IvyModuleDescriptorAuthor

Ivy 发布版本的作者。

IvyModuleDescriptorLicense

Ivy 发布版本的许可证。

IvyModuleDescriptorDescription

Ivy 发布版本的描述。

MavenPublication

MavenPublication 是 Gradle 应如何在 Maven 格式中发布某些内容的表示/配置。您可以通过提供 MavenPublication 作为类型,直接将命名的 Maven 发布添加到项目的 publishing.publications 容器。

MavenArtifact

作为 MavenPublication 一部分发布的 Artifact。

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

已移动到新组和/或 Artifact ID 的 Maven 发布版本的重定位信息。

MavenPomScm

Maven 发布版本的 SCM(源代码控制管理)。

容器类型

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

类型描述
TaskContainer

TaskContainer 负责管理一组 Task 实例。

ConfigurationContainer

ConfigurationContainer 负责声明和管理配置。另请参见 Configuration

RepositoryHandler

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

DependencyHandler

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

ComponentMetadataHandler

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

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 源代码生成 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

用于为一个或多个任务、文件、可发布 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

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

TestFixturesDependencyModifiers

依赖项修饰符 API,可以在其他模块中查找 dependencies 块的测试装置。

PlatformDependencyModifiers

依赖项修饰符 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 转换类型

用于定义构件转换。

类型描述
TransformAction

构件转换操作的接口。

TransformOutputs

构件转换的输出。

TransformSpec

构件转换注册的基础配置。

原生工具链模型类型

用于配置构建 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 文件。