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

依赖管理

基础插件不添加 用于依赖项的配置,但它确实添加了以下配置

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

约定(已弃用)

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