Base 插件提供了一些大多数构建通用的任务和约定,并为构建添加了一种结构,从而促进了运行方式的一致性。它最显著的贡献是一组生命周期任务,这些任务充当了其他插件和构建作者提供的更具体任务的汇总。

用法

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 文件。

依赖管理

Base 插件不添加用于依赖关系的配置,但它确实添加了以下配置:

default

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

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

archives

archives 配置上定义的所有制品都会由 assemble 任务自动构建。

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

贡献的扩展

Base 插件向项目添加了 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 及其派生文件(例如 WAR),默认为 libsDirectory

archiveVersion

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

archiveBaseName

默认为 $archivesBaseName

约定 (已弃用)

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