基础插件提供了一些任务和约定,这些任务和约定在大多数构建中都很常见,并为构建添加了一个结构,从而提高了运行构建方式的一致性。它最重要的贡献是一组 生命周期 任务,这些任务充当其他插件和构建作者提供的更具体任务的伞。

用法

build.gradle.kts
plugins {
    base
}
build.gradle
plugins {
    id 'base'
}

任务

cleanDelete

删除构建目录及其中的所有内容,即 layout.buildDirectory 项目属性指定的路径。

check — 生命周期任务

插件和构建作者应将他们的验证任务(例如运行测试的任务)附加到此生命周期任务,使用 check.dependsOn(task)

assemble生命周期任务

插件和构建作者应将生成发行版和其他可消费工件的任务附加到此生命周期任务。例如,jar 为 Java 库生成可消费的工件。使用 assemble.dependsOn(task) 将任务附加到此生命周期任务。

build — 生命周期任务

依赖于: check, assemble

旨在构建所有内容,包括运行所有测试、生成生产工件和生成文档。您可能很少直接将具体任务附加到 build,因为 assemblecheck 通常更合适。

buildConfiguration — 任务规则

组装附加到命名配置的那些工件。例如,buildRuntimeElements 将执行创建附加到 runtimeElements 配置的任何工件所需的任何任务。

cleanTask — 任务规则

删除任务的 定义的输出,例如 cleanJar 将删除 Java 插件的 jar 任务生成的 JAR 文件。

依赖管理

基础插件没有添加任何 依赖项配置,但它添加了以下配置

default

当在没有请求属性的情况下执行依赖项解析时使用的回退配置。

新的构建和插件不应使用 default 配置! 它仅为了向后兼容性而保留。依赖项解析应使用请求属性执行。

archives

archives 配置上定义的所有工件都由 assemble 任务自动构建。

新的构建和插件不应使用 archives 配置! 它仅为了向后兼容性而保留。相反,任务依赖项应直接在 assemble 任务上声明。

贡献的扩展

基础插件将 base 扩展 添加到项目中。 这允许在专用 DSL 代码块内配置以下属性。

build.gradle.kts
base {
    archivesName = "gradle"
    distsDirectory = layout.buildDirectory.dir("custom-dist")
    libsDirectory = layout.buildDirectory.dir("custom-libs")
}
build.gradle
base {
    archivesName = "gradle"
    distsDirectory = layout.buildDirectory.dir('custom-dist')
    libsDirectory = layout.buildDirectory.dir('custom-libs')
}
archivesName — 默认值: $project.name

为归档任务提供默认的 AbstractArchiveTask.getArchiveBaseName()

distsDirectory — 默认值: layout.buildDirectory.dir("distributions")

发行版归档文件(即非 JAR 文件)创建所在的目录的默认名称。

libsDirectory — 默认值: layout.buildDirectory.dir("libs")

库归档文件(即 JAR 文件)创建所在的目录的默认名称。

该插件还为扩展 AbstractArchiveTask 的任何任务上的以下属性提供默认值

destinationDirectory

对于非 JAR 归档文件,默认为 distsDirectory,对于 JAR 和 JAR 的衍生物(如 WAR 文件),默认为 libsDirectory

archiveVersion

如果项目没有版本,则默认为 $project.version 或 'unspecified'。

archiveBaseName

默认为 $archivesBaseName

约定 (已弃用)

基础插件还添加了与创建归档文件(如 ZIP、TAR 和 JAR 文件)相关的约定。这些约定已弃用,并被上面描述的扩展取代。 有关它们的更多信息,请参阅 BasePluginConvention DSL 文档。