基本插件提供了一些在大多数构建中常见的任务和约定,并为构建添加了一种结构,以促进它们运行方式的一致性。其最重要的贡献是一组生命周期任务,这些任务作为其他插件和构建作者提供的更具体任务的“保护伞”。

用法

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

任务

cleanDelete

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

check — 生命周期任务

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

assemble生命周期任务

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

build — 生命周期任务

依赖于checkassemble

旨在构建所有内容,包括运行所有测试、生成生产工件和生成文档。您可能很少直接将具体任务附加到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及其衍生品(如WAR)默认为libsDirectory

archiveVersion

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

archiveBaseName

默认值为archivesName