项目

API文档:Project

该接口是您用来从构建文件与 Gradle 交互的主要 API。从Project,您可以通过编程方式访问 Gradle 的所有功能。

生命周期

Projecta和文件之间存在一对一的关系build.gradle 。在构建初始化期间,GradleProject为每个要参与构建的项目组装一个对象,如下所示:

  • Settings为构建创建一个实例。
  • 根据对象评估settings.gradle脚本(如果存在)Settings以对其进行配置。
  • 使用配置的Settings对象创建 Project实例的层次结构。
  • 最后,通过针对项目Project执行其文件(如果存在)来评估每个文件。build.gradle这些项目按广度顺序进行评估,以便项目在其子项目之前进行评估。可以通过调用Project.evaluationDependsOnChildren()或使用添加显式求值依赖项来覆盖此顺序Project.evaluationDependsOn(java.lang.String)

任务

项目本质上是Task对象的集合。每个任务都执行一些基本工作,例如编译类、运行单元测试或压缩 WAR 文件。您可以使用create()上的方法之一将任务添加到项目中 TaskContainer,例如TaskContainer.create(java.lang.String)。您可以使用 上的一种查找方法来定位现有任务TaskContainer,例如TaskCollection.getByName(java.lang.String)

依赖关系

一个项目通常具有完成其工作所需的许多依赖项。此外,一个项目通常会产生许多工件,其他项目可以使用这些工件。这些依赖项按配置分组,可以从存储库检索和上传。您可以使用ConfigurationContainer 返回的 byProject.getConfigurations()方法来管理配置。DependencyHandler通过方法返回来Project.getDependencies()管理依赖关系。ArtifactHandler通过方法返回来Project.getArtifacts()管理工件。返回RepositoryHandler的 byProject.getRepositories()方法来管理存储库。

多项目构建

项目按项目层次结构排列。项目有一个名称和一个在层次结构中唯一标识该项目的完全限定路径。

插件

插件可用于模块化和重用项目配置。可以使用该PluginAware.apply(java.util.Map)方法或使用PluginDependenciesSpec插件脚本块来应用插件。

动态项目属性

Gradle 针对实例执行项目的构建文件Project来配置项目。脚本使用的任何属性或方法都会委托给关联的Project对象。这意味着,您可以Project直接在脚本中 使用接口上的任何方法和属性。

例如:

defaultTasks('some-task')  // Delegates to Project.defaultTasks()
reportsDir = file('reports') // Delegates to Project.file() and the Java Plugin

您还可以Project使用该project属性访问实例。在某些情况下这可以使脚本更加清晰。例如,您可以使用project.name而不是name访问项目的名称。

一个项目有 5 个属性“范围”,用于搜索属性。您可以通过构建文件中的名称或通过调用项目的Project.property(java.lang.String)方法来访问这些属性。范围是:

  • 物体Project本身。此范围包括实现类声明的任何属性 getter 和 setter Project。例如,Project.getRootProject()可作为 rootProject属性访问。该作用域的属性是否可读或可写取决于相应的 getter 或 setter 方法是否存在。
  • 项目的额外属性。每个项目都维护一个额外属性的映射,其中可以包含任意名称 -> 值对。一旦定义,该范围的属性就是可读可写的。有关更多详细信息,请参阅额外属性。
  • 通过插件添加到项目中的扩展。每个扩展都可以作为只读属性使用,其名称与扩展相同。
  • 由插件添加到项目的约定属性。插件可以通过项目的对象向项目添加属性和方法Convention。该范围的属性可以是可读的或可写的,具体取决于约定对象。
  • 项目的任务。可以通过使用任务名称作为属性名称来访问任务。此范围的属性是只读的。例如,调用的任务compile可以作为compile 属性进行访问。
  • 额外属性和约定属性从项目的父项目继承,递归到根项目。此范围的属性是只读的。

读取属性时,项目会按顺序搜索上述范围,并从找到该属性的第一个范围返回值。如果未找到,则会引发异常。请参阅Project.property(java.lang.String)了解更多详情。

编写属性时,项目会按顺序搜索上述范围,并在找到该属性的第一个范围中设置该属性。如果未找到,则会抛出异常。请参阅Project.setProperty(java.lang.String, java.lang.Object)了解更多详情。

额外属性

所有额外属性必须通过“ext”命名空间定义。一旦定义了额外的属性,它就可以直接在所属对象上使用(在下面的情况下分别是项目、任务和子项目),并且可以读取和更新。只需要通过命名空间完成初始声明。

project.ext.prop1 = "foo"
task doStuff {
    ext.prop2 = "bar"
}
subprojects { ext.${prop3} = false }

读取额外的属性是通过“ext”或通过拥有的对象完成的。

ext.isSnapshot = version.endsWith("-SNAPSHOT")
if (isSnapshot) {
    // do snapshot stuff
}

动态方法

一个项目有 5 个方法“范围”,它会在其中搜索方法:

  • 物体Project本身。
  • 构建文件。项目搜索构建文件中声明的匹配方法。
  • 通过插件添加到项目中的扩展。每个扩展都可以用作采用闭包或Action参数的方法。
  • 由插件添加到项目中的约定方法。插件可以通过项目的对象向项目添加属性和方法Convention
  • 项目的任务。为每个任务添加一个方法,使用任务名称作为方法名称并采用单个闭包或Action参数。该方法使用Task.configure(groovy.lang.Closure)提供的闭包调用关联任务的方法。例如,如果项目有一个名为 的任务compile,则添加一个具有以下签名的方法:void compile(Closure configureClosure)
  • 父项目的方法,递归到根项目。
  • 项目的一个属性,其值为闭包。闭包被视为一种方法,并使用提供的参数进行调用。该物业的位置如上所述。

特性

财产描述
allprojects

包含该项目及其子项目的集合。

ant

对于AntBuilder这个项目。您可以在构建文件中使用它来执行 ant 任务。请参阅下面的示例。

artifacts

返回一个处理程序,用于将项目生成的工件分配给配置。

buildDir
已弃用

该项目的构建目录。构建目录是生成所有工件的目录。构建目录的默认值为projectDir/build

buildFile

该项目的构建脚本。

buildscript

该项目的构建脚本处理程序。您可以使用此处理程序来查询有关该项目的构建脚本的详细信息,并管理用于编译和执行项目的构建脚本的类路径。

childProjects

该项目的直接子级。

configurations

该项目的配置。

convention
已弃用

对于Convention这个项目。

defaultTasks

该项目的默认任务的名称。当开始构建时未提供任务名称时,将使用这些任务。

dependencies

该项目的依赖处理程序。返回的依赖项处理程序实例可用于添加新的依赖项。为了访问已经声明的依赖项,可以使用配置。

dependencyLocking

提供对配置依赖性锁定的访问

description

该项目的描述(如果有)。

extensions

允许向项目添加 DSL 扩展。对于插件作者很有用。

gradle

Gradle该项目所属的调用。

group

这个项目的小组。 Gradle 始终使用toString()组的值。该组默认为以点作为分隔符的路径。

layout

提供对该项目的各种重要目录的访问。

logger

该项目的记录器。您可以在构建文件中使用它来写入日志消息。

logging

LoggingManager可用于接收日志记录并控制该项目构建脚本的标准输出/错误捕获。默认情况下,System.out 以 QUIET 日志级别重定向到 Gradle 日志系统,System.err 以 ERROR 日志级别重定向。

name

这个项目的名称。项目的名称在项目层次结构中不一定是唯一的。您应该使用该Project.getPath()方法作为项目的唯一标识符。如果根项目未命名并且位于文件系统根目录上,它将具有随机生成的名称

normalization

提供对配置输入规范化的访问。

parent

该项目的父项目(如果有)。

path

该项目的路径。该路径是项目的完全限定名称。

pluginManager

此插件感知对象的插件管理器。

plugins

已应用于此对象的插件的容器。

project

返回该项目。此方法在构建文件中非常有用,可显式访问项目属性和方法。例如,使用project.name比使用更能表达你的意图 name。此方法还允许您从可能隐藏属性的范围(例如从方法或闭包)访问项目属性。

projectDir

包含项目构建文件的目录。

properties

该项目的属性。有关项目可用属性的详细信息,请参阅此处。

repositories

返回一个处理程序来创建存储库,该存储库用于检索依赖项并上传项目生成的工件。

resources

提供对特定于资源的实用程序方法的访问,例如创建各种资源的工厂方法。

rootDir

该项目的根目录。根目录是根项目的项目目录。

rootProject

该项目所属层次结构的根项目。在单个项目构建的情况下,此方法返回该项目。

state

本项目的评价情况。您可以使用它来访问有关该项目评估的信息,例如它是否失败。

status

该项目的状态。 Gradle 始终使用toString()状态值。状态默认为release

subprojects

包含该项目的子项目的集合。

tasks

本项目的任务。

version

该项目的版本。 Gradle 始终使用toString()版本的值。版本默认为unspecified.

application插件添加的属性

财产描述
application

JavaApplication由应用程序插件添加。

applicationDefaultJvmArgs

运行应用程序时传递给 JVM 的字符串参数数组

applicationDistribution

分发内容的规范。

applicationName

应用程序的名称。

executableDir

放置可执行文件的目录

mainClassName

应用程序主类的完全限定名称。

checkstyle插件添加的属性

财产描述
checkstyle

CheckstyleExtension由 checkstyle 插件添加。

codenarc插件添加的属性

财产描述
codenarc

CodeNarcExtension由 codenarc 插件添加。

distribution插件添加的属性

财产描述
distributions

DistributionContainer由分发插件添加。

ear插件添加的属性

财产描述
appDirName

应用程序目录的名称,相对于项目目录。默认为“src/main/application”。

deploymentDescriptor

自定义部署描述符配置。默认值是具有合理默认值的“application.xml”。

generateDeploymentDescriptor

指定如果部署描述符不存在,是否应生成该部署描述符。默认为 true。

libDirName

EAR 文件中库目录的名称。默认为“lib”。

eclipse插件添加的属性

财产描述
eclipse

EclipseModel由eclipse插件添加。

idea插件添加的属性

财产描述
idea

IdeaModel由idea插件添加。

jacoco插件添加的属性

财产描述
jacoco

JacocoPluginExtension由 jacoco 插件添加。

java插件添加的属性

财产描述
archivesBaseName

用于存档文件的基本名称。

base

BasePluginExtension由java插件添加。

distsDirName

发行版目录的名称。这相对于项目的构建目录进行解释。

distsDirectory

生成 TAR 和 ZIP 存档的目录。

docsDir

返回一个指向根目录的文件,该文件应该用于所有文档。

docsDirName

文档目录的名称。可以是名称或相对于构建目录的路径。

java

JavaPluginExtension由java插件添加。

libsDirName

libs 目录的名称。这相对于项目的构建目录进行解释。

libsDirectory

生成 JAR 和 WAR 档案的目录。

reporting

ReportingExtension由java插件添加。

sourceCompatibility

用于编译 Java 源代码的源兼容性。

sourceSets

源集容器。

targetCompatibility

用于编译 Java 源的目标兼容性。

testReportDir

返回指向用于报告的根目录的文件。

testReportDirName

测试报告目录的名称。可以是名称或相对于 的路径ReportingExtension.getBaseDir()

testResultsDir

返回一个指向测试结果根目录的文件。

testResultsDirName

测试结果目录的名称。可以是名称或相对于构建目录的路径。

pmd插件添加的属性

财产描述
pmd

PmdExtension由 pmd 插件添加。

project-report插件添加的属性

财产描述
projectReportDir

生成项目报告的目录。

projectReportDirName

生成项目报告的目录名称,相对于项目的报告目录。

publishing插件添加的属性

财产描述
publishing

PublishingExtension由发布插件添加。

signing插件添加的属性

财产描述
signing

SigningExtension由签名插件添加。

visual-studio插件添加的属性

财产描述
visualStudio

VisualStudioRootExtension由 Visual-studio 插件添加。

war插件添加的属性

财产描述
webAppDir

Web 应用程序目录。

webAppDirName

Web 应用程序目录的名称,相对于项目目录。

xcode插件添加的属性

财产描述
xcode

XcodeRootExtension由 xcode 插件添加。

方法

方法描述
absoluteProjectPath(path)

将名称转换为绝对项目路径,解析相对于该项目的名称。

afterEvaluate(closure)

添加一个闭包以在评估该项目后立即调用。

afterEvaluate(action)

添加一个在评估该项目后立即调用的操作。

allprojects(action)

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

ant(configureAction)

针对该项目执行给定的操作AntBuilder。您可以在构建文件中使用它来执行 ant 任务。请参阅 javadoc 中的示例Project.getAnt()

apply(closure)

应用零个或多个插件或脚本。

apply(options)

使用作为地图提供的给定选项来应用插件或脚本。如果插件已被应用,则不执行任何操作。

apply(action)

应用零个或多个插件或脚本。

artifacts(configureAction)

配置该项​​目的已发布工件。

beforeEvaluate(closure)

添加一个闭包以在评估该项目之前立即调用。

beforeEvaluate(action)

添加一个要在评估此项目之前立即调用的操作。

configure(objects, configureClosure)

通过闭包配置对象集合。这相当于调用Project.configure(java.lang.Object, groovy.lang.Closure)每个给定的对象。

configure(objects, configureAction)

通过操作配置对象集合。

configure(object, configureClosure)

通过闭包配置对象,并将闭包的委托设置为提供的对象。这样您就不必多次指定配置语句的上下文。

container(type)

创建用于管理指定类型的命名对象的容器。指定的类型必须有一个公共构造函数,该构造函数将名称作为字符串参数。

container(type, factoryClosure)

创建用于管理指定类型的命名对象的容器。给定的闭包用于创建对象实例。要创建的实例的名称作为参数传递给闭包。

container(type, factory)

创建用于管理指定类型的命名对象的容器。给定的工厂用于创建对象实例。

copy(closure)

复制指定的文件。给定的闭包用于配置 a CopySpec,然后用于复制文件。例子:

copy(action)

复制指定的文件。给定的操作用于配置CopySpec,然后用于复制文件。

copySpec()

创建一个CopySpec稍后可用于复制文件或创建存档的文件。

copySpec(closure)

创建一个CopySpec稍后可用于复制文件或创建存档的文件。给定的闭包用于CopySpec在此方法返回之前对其进行配置。

copySpec(action)

创建一个CopySpec稍后可用于复制文件或创建存档的文件。给定的操作用于CopySpec在此方法返回之前对其进行配置。

defaultTasks(defaultTasks)

设置该项目的默认任务的名称。当开始构建时未提供任务名称时,将使用这些任务。

delete(paths)

删除文件和目录。

delete(action)

删除指定的文件。给定的操作用于配置DeleteSpec,然后用于删除文件。

dependencyLocking(configuration)

配置依赖锁定

evaluationDependsOn(path)

声明该项目对具有给定路径的项目具有评估依赖性。

exec(closure)

执行外部命令。该闭包配置了一个ExecSpec.

exec(action)

执行外部命令。

file(path)

解析相对于该项目的项目目录的文件路径。此方法根据其类型转换提供的路径:

file(path, validation)

解析相对于该项目的项目目录的文件路径,并使用给定的方案对其进行验证。请PathValidation参阅 参考资料 可能的验证列表。

fileTree(baseDir)

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)

fileTree(baseDir, configureClosure)

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)。该闭包将用于配置新的文件树。文件树作为其委托传递给闭包。例子:

fileTree(baseDir, configureAction)

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)。该操作将用于配置新的文件树。例子:

fileTree(args)

ConfigurableFileTree使用提供的参数映射创建一个新的。该映射将作为属性应用到新文件树上。例子:

files(paths, configureClosure)

ConfigurableFileCollection使用给定的路径创建一个新的。路径按照 进行评估Project.files(java.lang.Object[])。文件集合是使用给定的闭包配置的。文件集合作为其委托传递给闭包。例子:

files(paths, configureAction)

ConfigurableFileCollection使用给定的路径创建一个新的。路径按照 进行评估Project.files(java.lang.Object[])。文件集合是使用给定操作配置的。例子:

files(paths)

返回ConfigurableFileCollection包含给定文件的a。您可以将以下任何类型传递给此方法:

findProject(path)

按路径定位项目。如果路径是相对路径,则它被解释为相对于该项目。

findProperty(propertyName)

返回给定属性的值,如果未找到,则返回 null。该方法按如下方式定位属性:

getAllTasks(recursive)

返回此项目及其子项目(可选)中包含的任务的映射。

getTasksByName(name, recursive)

返回此项目及其子项目中包含的具有给定名称的任务集。 注意:这是一项昂贵的操作,因为它需要配置所有项目。

hasProperty(propertyName)

确定该项目是否具有给定的属性。有关项目可用属性的详细信息,请参阅此处。

javaexec(closure)

执行 Java 主类。该闭包配置了一个JavaExecSpec.

javaexec(action)

执行外部 Java 进程。

mkdir(path)

创建一个目录并返回一个指向该目录的文件。

normalization(configuration)

配置输入标准化。

project(path)

按路径定位项目。如果路径是相对路径,则它被解释为相对于该项目。

project(path, configureClosure)

按路径定位项目并使用给定的闭包对其进行配置。如果路径是相对路径,则它被解释为相对于该项目。目标项目作为闭包的委托传递给闭包。

project(path, configureAction)

按路径定位项目并使用给定操作配置它。如果路径是相对路径,则它被解释为相对于该项目。

property(propertyName)

返回给定属性的值。该方法按如下方式定位属性:

relativePath(path)

返回从项目目录到给定路径的相对路径。给定的路径对象按照 的描述进行(逻辑上)解析Project.file(java.lang.Object),从中计算出相对路径。

relativeProjectPath(path)

将名称转换为相对于该项目的项目路径。

setProperty(name, value)

设置该项目的属性。此方法在以下位置搜索具有给定名称的属性,并在找到该属性的第一个位置设置该属性。

subprojects(action)

配置该项​​目的子项目

sync(action)

将目标目录的内容与某些源目录和文件同步。给定的操作用于配置SyncSpec,然后用于同步文件。

tarTree(tarPath)

创建一个新文件FileTree,其中包含给定 TAR 文件的内容。给定的 tarPath 路径可以是:

task(name)

Task使用给定名称创建并将其添加到此项目中。调用此方法相当于Project.task(java.util.Map, java.lang.String)使用空选项映射进行调用。

task(name, configureClosure)

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的闭包来配置任务。

task(name, configureAction)

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的操作来配置任务。

task(args, name)

Task使用给定名称创建并将其添加到此项目中。可以将创建选项映射传递给此方法来控制任务的创建方式。可以使用以下选项:

task(args, name, configureClosure)

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的闭包来配置任务。可以将创建选项映射传递给此方法来控制任务的创建方式。请参阅 参考资料了解Project.task(java.util.Map, java.lang.String)可用选项。

uri(path)

将文件路径解析为 URI,相对于该项目的项目目录。按照 中的描述评估提供的路径对象Project.file(java.lang.Object),但支持任何 URI 方案,而不仅仅是“file:”URI。

zipTree(zipPath)

创建一个新文件FileTree,其中包含给定 ZIP 文件的内容。给定的 zipPath 路径按照 进行评估Project.file(java.lang.Object)。您可以将此方法与Project.copy(org.gradle.api.Action) 解压缩 ZIP 文件的方法结合起来。

ear插件添加的方法

方法描述
appDirName(appDirName)

允许更改应用程序目录。默认为“src/main/application”。

deploymentDescriptor(configureAction)

配置此 EAR 存档的部署描述符。

libDirName(libDirName)

允许更改 EAR 文件中的库目录。默认为“lib”。

java插件添加的方法

方法描述
manifest()

创建 的一个新实例Manifest

manifest(closure)

创建并配置 的新实例Manifest。给定的闭包在返回之前配置新的清单实例。

manifest(action)

创建并配置 的新实例Manifest

脚本块

堵塞描述
allprojects

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

ant

AntBuilder针对该项目执行给定的关闭。您可以在构建文件中使用它来执行 ant 任务。作为闭包的委托传递AntBuild给闭包。请参阅 javadoc 中的示例Project.getAnt()

artifacts

配置该项​​目的已发布工件。

buildscript

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

configurations

配置该项​​目的依赖配置。

dependencies

配置此项目的依赖项。

repositories

配置该项​​目的存储库。

subprojects

配置该项​​目的子项目。

application插件添加的脚本块

堵塞描述
application

配置JavaApplication应用程序插件添加的内容。

checkstyle插件添加的脚本块

堵塞描述
checkstyle

配置CheckstyleExtension由 checkstyle 插件添加的内容。

codenarc插件添加的脚本块

堵塞描述
codenarc

配置CodeNarcExtension由 codenarc 插件添加的内容。

distribution插件添加的脚本块

堵塞描述
distributions

配置DistributionContainer由分发插件添加的内容。

ear插件添加的脚本块

堵塞描述
deploymentDescriptor

配置此 EAR 存档的部署描述符。

eclipse插件添加的脚本块

堵塞描述
eclipse

配置EclipseModel由eclipse插件添加的。

idea插件添加的脚本块

堵塞描述
idea

配置IdeaModelidea插件添加的。

jacoco插件添加的脚本块

堵塞描述
jacoco

配置JacocoPluginExtensionjacoco 插件添加的内容。

java插件添加的脚本块

堵塞描述
base

配置BasePluginExtensionjava插件添加的。

java

配置JavaPluginExtensionjava插件添加的。

reporting

配置ReportingExtensionjava插件添加的。

sourceSets

配置该项​​目的源集。

pmd插件添加的脚本块

堵塞描述
pmd

配置PmdExtensionpmd 插件添加的内容。

publishing插件添加的脚本块

堵塞描述
publishing

配置PublishingExtension发布插件添加的内容。

signing插件添加的脚本块

堵塞描述
signing

配置SigningExtension签名插件添加的内容。

visual-studio插件添加的脚本块

堵塞描述
visualStudio

配置VisualStudioRootExtension由 Visual-studio 插件添加的内容。

xcode插件添加的脚本块

堵塞描述
xcode

配置XcodeRootExtensionxcode插件添加的。

物业详情

Set<Project> allprojects(只读)

包含该项目及其子项目的集合。

AntBuilder ant(只读)

对于AntBuilder这个项目。您可以在构建文件中使用它来执行 ant 任务。请参阅下面的示例。

task printChecksum {
  doLast {
    ant {
      //using ant checksum task to store the file checksum in the checksumOut ant property
      checksum(property: 'checksumOut', file: 'someFile.txt')

      //we can refer to the ant property created by checksum task:
      println "The checksum is: " + checksumOut
    }

    //we can refer to the ant property later as well:
    println "I just love to print checksums: " + ant.checksumOut
  }
}

考虑以下 ant 目标示例:

<target name='printChecksum'>
  <checksum property='checksumOut'>
    <fileset dir='.'>
      <include name='agile.txt'/>
    </fileset>
  </checksum>
  <echo>The checksum is: ${checksumOut}</echo>
</target>

这是它在 gradle 中的样子。观察 ant 构建器如何在 groovy 中表示 ant XML

task printChecksum {
  doLast {
    ant {
      checksum(property: 'checksumOut') {
        fileset(dir: '.') {
          include name: 'agile1.txt'
        }
      }
    }
    logger.lifecycle("The checksum is $ant.checksumOut")
  }
}

ArtifactHandler artifacts(只读)

返回一个处理程序,用于将项目生成的工件分配给配置。

例子:

请参阅文档ArtifactHandler

File buildDir

注意:此属性已弃用,并将在 Gradle 的下一个主要版本中删除。

该项目的构建目录。构建目录是生成所有工件的目录。构建目录的默认值为projectDir/build

File buildFile(只读)

该项目的构建脚本。

如果该文件存在,则在配置该项目时将针对该项目对其进行评估。

ScriptHandler buildscript(只读)

该项目的构建脚本处理程序。您可以使用此处理程序来查询有关该项目的构建脚本的详细信息,并管理用于编译和执行项目的构建脚本的类路径。

Map<String, Project> childProjects(只读)

该项目的直接子级。

ConfigurationContainer configurations(只读)

该项目的配置。

例子:

请参阅文档ConfigurationContainer

Convention convention(只读)

注意:此属性已弃用,并将在 Gradle 的下一个主要版本中删除。

对于Convention这个项目。

您可以使用 来在构建文件中访问此属性convention。您还可以访问约定对象的属性和方法,就像它们是该项目的属性和方法一样。请参阅此处了解更多详情

List<String> defaultTasks

该项目的默认任务的名称。当开始构建时未提供任务名称时,将使用这些任务。

DependencyHandler dependencies(只读)

该项目的依赖处理程序。返回的依赖项处理程序实例可用于添加新的依赖项。为了访问已经声明的依赖项,可以使用配置。

例子:

请参阅文档DependencyHandler

DependencyLockingHandler dependencyLocking(只读)

提供对配置依赖性锁定的访问

String description

该项目的描述(如果有)。

ExtensionContainer extensions(只读)

允许向项目添加 DSL 扩展。对于插件作者很有用。

Gradle gradle(只读)

Gradle该项目所属的调用。

Object group

这个项目的小组。 Gradle 始终使用toString()组的值。该组默认为以点作为分隔符的路径。

ProjectLayout layout(只读)

提供对该项目的各种重要目录的访问。

Logger logger(只读)

该项目的记录器。您可以在构建文件中使用它来写入日志消息。

LoggingManager logging(只读)

LoggingManager可用于接收日志记录并控制该项目构建脚本的标准输出/错误捕获。默认情况下,System.out 以 QUIET 日志级别重定向到 Gradle 日志系统,System.err 以 ERROR 日志级别重定向。

String name(只读)

这个项目的名称。项目的名称在项目层次结构中不一定是唯一的。您应该使用该Project.getPath()方法作为项目的唯一标识符。如果根项目未命名并且位于文件系统根目录上,它将具有随机生成的名称

InputNormalizationHandler normalization(只读)

提供对配置输入规范化的访问。

Project parent(只读)

该项目的父项目(如果有)。

String path(只读)

该项目的路径。该路径是项目的完全限定名称。

PluginManager pluginManager(只读)

此插件感知对象的插件管理器。

PluginContainer plugins(只读)

已应用于此对象的插件的容器。

虽然不推荐使用,但最好使用此接口的方法或PluginAware.getPluginManager()使用插件容器。

使用此界面或应用插件上的“应用”方法之一,PluginAware.getPluginManager()而不是通过插件容器应用。

使用PluginManager.hasPlugin(java.lang.String)或类似查询插件的应用程序,而不是通过插件容器执行此操作。

Project project(只读)

返回该项目。此方法在构建文件中非常有用,可显式访问项目属性和方法。例如,使用project.name比使用更能表达你的意图 name。此方法还允许您从可能隐藏属性的范围(例如从方法或闭包)访问项目属性。

File projectDir(只读)

包含项目构建文件的目录。

Map<String, ?> properties(只读)

该项目的属性。有关项目可用属性的详细信息,请参阅此处。

RepositoryHandler repositories(只读)

返回一个处理程序来创建存储库,该存储库用于检索依赖项并上传项目生成的工件。

ResourceHandler resources(只读)

提供对特定于资源的实用程序方法的访问,例如创建各种资源的工厂方法。

File rootDir(只读)

该项目的根目录。根目录是根项目的项目目录。

Project rootProject(只读)

该项目所属层次结构的根项目。在单个项目构建的情况下,此方法返回该项目。

ProjectState state(只读)

本项目的评价情况。您可以使用它来访问有关该项目评估的信息,例如它是否失败。

Object status

该项目的状态。 Gradle 始终使用toString()状态值。状态默认为release

仅当您将库与模块描述符一起上传时,项目的状态才相关。此处指定的状态将成为该模块描述符的一部分。

Set<Project> subprojects(只读)

包含该项目的子项目的集合。

TaskContainer tasks(只读)

本项目的任务。

Object version

该项目的版本。 Gradle 始终使用toString()版本的值。版本默认为unspecified.

JavaApplication application(只读)

JavaApplication由应用程序插件添加。

Iterable<String> applicationDefaultJvmArgs

运行应用程序时传递给 JVM 的字符串参数数组

CopySpec applicationDistribution

分发内容的规范。

使用它CopySpec可以在应用程序分发中包含额外的文件/资源​​。

plugins {
    id 'application'
}

application {
    applicationDistribution.from("some/dir") {
      include "*.txt"
    }
}

请注意,应用程序插件将此规范预先配置为:包含“ ”的内容src/dist,将应用程序启动脚本复制到“ bin”目录中,并将构建的jar及其依赖项复制到“ lib”目录中。

String applicationName

应用程序的名称。

String executableDir

放置可执行文件的目录

String mainClassName

应用程序主类的完全限定名称。

CheckstyleExtension checkstyle(只读)

CheckstyleExtension由 checkstyle 插件添加。

CodeNarcExtension codenarc(只读)

CodeNarcExtension由 codenarc 插件添加。

DistributionContainer distributions(只读)

DistributionContainer由分发插件添加。

String appDirName

应用程序目录的名称,相对于项目目录。默认为“src/main/application”。

DeploymentDescriptor deploymentDescriptor

自定义部署描述符配置。默认值是具有合理默认值的“application.xml”。

Property<Boolean> generateDeploymentDescriptor

指定如果部署描述符不存在,是否应生成该部署描述符。默认为 true。

String libDirName

EAR 文件中库目录的名称。默认为“lib”。

EclipseModel eclipse(只读)

EclipseModel由eclipse插件添加。

IdeaModel idea(只读)

IdeaModel由idea插件添加。

JacocoPluginExtension jacoco(只读)

JacocoPluginExtension由 jacoco 插件添加。

String archivesBaseName

用于存档文件的基本名称。

BasePluginExtension base(只读)

BasePluginExtension由java插件添加。

String distsDirName

发行版目录的名称。这相对于项目的构建目录进行解释。

DirectoryProperty distsDirectory

生成 TAR 和 ZIP 存档的目录。

File docsDir(只读)

返回一个指向根目录的文件,该文件应该用于所有文档。

String docsDirName

文档目录的名称。可以是名称或相对于构建目录的路径。

JavaPluginExtension java(只读)

JavaPluginExtension由java插件添加。

String libsDirName

libs 目录的名称。这相对于项目的构建目录进行解释。

DirectoryProperty libsDirectory

生成 JAR 和 WAR 档案的目录。

ReportingExtension reporting(只读)

ReportingExtension由java插件添加。

JavaVersion sourceCompatibility

用于编译 Java 源代码的源兼容性。

SourceSetContainer sourceSets(只读)

源集容器。

JavaVersion targetCompatibility

用于编译 Java 源的目标兼容性。

File testReportDir(只读)

返回指向用于报告的根目录的文件。

String testReportDirName

测试报告目录的名称。可以是名称或相对于 的路径ReportingExtension.getBaseDir()

File testResultsDir(只读)

返回一个指向测试结果根目录的文件。

String testResultsDirName

测试结果目录的名称。可以是名称或相对于构建目录的路径。

PmdExtension pmd(只读)

PmdExtension由 pmd 插件添加。

File projectReportDir(只读)

生成项目报告的目录。

String projectReportDirName

生成项目报告的目录名称,相对于项目的报告目录。

PublishingExtension publishing(只读)

PublishingExtension由发布插件添加。

SigningExtension signing(只读)

SigningExtension由签名插件添加。

VisualStudioRootExtension visualStudio(只读)

VisualStudioRootExtension由 Visual-studio 插件添加。

File webAppDir(只读)

Web 应用程序目录。

String webAppDirName

Web 应用程序目录的名称,相对于项目目录。

XcodeRootExtension xcode(只读)

XcodeRootExtension由 xcode 插件添加。

方法详情

String absoluteProjectPathString小路)

将名称转换为绝对项目路径,解析相对于该项目的名称。

void afterEvaluateClosure关闭)

添加一个闭包以在评估该项目后立即调用。

void afterEvaluate(行动)Action<? super Project>

添加一个在评估该项目后立即调用的操作。

将项目作为参数传递给操作。传递给此方法的操作按照传递的顺序执行。父项目可以向其子项目添加操作,以根据构建文件运行后的状态进一步配置这些项目。

如果项目已被评估,则此方法失败。

如果您在操作中调用此方法afterEvaluate,则传递的操作将在所有先前添加的afterEvaluate操作完成执行后执行。

void allprojects(行动)Action<? super Project>

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

此方法Action针对该项目及其每个子项目执行给定的操作。

AntBuilder ant(配置动作)Action<? super AntBuilder>

针对该项目执行给定的操作AntBuilder。您可以在构建文件中使用它来执行 ant 任务。请参阅 javadoc 中的示例Project.getAnt()

void applyClosure关闭)

应用零个或多个插件或脚本。

给定的闭包用于配置ObjectConfigurationAction“构建”插件应用程序。

此方法的不同之处PluginAware.apply(java.util.Map)在于它允许多次调用配置操作的方法。

void apply(选项)Map<String, ?>

使用作为地图提供的给定选项来应用插件或脚本。如果插件已被应用,则不执行任何操作。

给定的映射作为一系列方法调用应用到新创建的ObjectConfigurationAction.也就是说,映射中的每个键都应该是方法的名称ObjectConfigurationAction,并且值是与该方法兼容的参数。

可以使用以下选项:

  • from:要应用的脚本。接受 所支持的任何路径Project.uri(java.lang.Object)
  • plugin:要应用的插件的 id 或实现类。
  • to:目标委托对象或对象。默认是这个插件感知对象。使用它来配置除此对象之外的对象。

void apply(行动)Action<? super ObjectConfigurationAction>

应用零个或多个插件或脚本。

给定的闭包用于配置ObjectConfigurationAction“构建”插件应用程序。

此方法的不同之处PluginAware.apply(java.util.Map)在于它允许多次调用配置操作的方法。

void artifacts(配置动作)Action<? super ArtifactHandler>

配置该项​​目的已发布工件。

ArtifactHandler此方法针对该项目 执行给定的操作。

例子:

configurations {
  //declaring new configuration that will be used to associate with artifacts
  schema
}

task schemaJar(type: Jar) {
  //some imaginary task that creates a jar artifact with the schema
}

//associating the task that produces the artifact with the configuration
artifacts {
  //configuration name and the task:
  schema schemaJar
}

void beforeEvaluateClosure关闭)

添加一个闭包以在评估该项目之前立即调用。

void beforeEvaluate(行动)Action<? super Project>

添加一个要在评估此项目之前立即调用的操作。

将项目作为参数传递给操作。传递给此方法的操作按照传递的顺序执行。

如果项目已被评估,则该操作永远不会执行。

如果您在beforeEvaluate操作中调用此方法,则传递的操作永远不会执行。

Iterable<?> configureIterable<?>对象,ClosureconfigureClosure)

通过闭包配置对象集合。这相当于调用Project.configure(java.lang.Object, groovy.lang.Closure)每个给定的对象。

Iterable<T> configure(对象,配置操作)Iterable<T>Action<? super T>

通过操作配置对象集合。

Object configureObject对象,ClosureconfigureClosure)

通过闭包配置对象,并将闭包的委托设置为提供的对象。这样您就不必多次指定配置语句的上下文。

代替:

MyType myType = new MyType()
myType.doThis()
myType.doThat()

你可以做:

MyType myType = configure(new MyType()) {
    doThis()
    doThat()
}

正在配置的对象也会作为参数传递给闭包,因此您可以根据需要显式访问它:

configure(someObj) { obj -> obj.doThis() }

NamedDomainObjectContainer<T> container(类型)Class<T>

创建用于管理指定类型的命名对象的容器。指定的类型必须有一个公共构造函数,该构造函数将名称作为字符串参数。

所有对象必须将其名称公开为名为“name”的 bean 属性。该名称在对象的生命周期内必须保持不变。

NamedDomainObjectContainer<T> container(类型、工厂关闭)Class<T>Closure

创建用于管理指定类型的命名对象的容器。给定的闭包用于创建对象实例。要创建的实例的名称作为参数传递给闭包。

所有对象必须将其名称公开为名为“name”的 bean 属性。该名称在对象的生命周期内必须保持不变。

NamedDomainObjectContainer<T> container(类型、工厂)Class<T>NamedDomainObjectFactory<T>

创建用于管理指定类型的命名对象的容器。给定的工厂用于创建对象实例。

所有对象必须将其名称公开为名为“name”的 bean 属性。该名称在对象的生命周期内必须保持不变。

WorkResult copyClosure关闭)

复制指定的文件。给定的闭包用于配置 a CopySpec,然后用于复制文件。例子:

copy {
   from configurations.runtimeClasspath
   into 'build/deploy/lib'
}

请注意,CopySpec 可以嵌套:

copy {
   into 'build/webroot'
   exclude '**/.svn/**'
   from('src/main/webapp') {
      include '**/*.jsp'
      filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
   }
   from('src/main/js') {
      include '**/*.js'
   }
}

WorkResult copy(行动)Action<? super CopySpec>

复制指定的文件。给定的操作用于配置CopySpec,然后用于复制文件。

CopySpec copySpec()

创建一个CopySpec稍后可用于复制文件或创建存档的文件。

CopySpec copySpecClosure关闭)

创建一个CopySpec稍后可用于复制文件或创建存档的文件。给定的闭包用于CopySpec在此方法返回之前对其进行配置。

def baseSpec = copySpec {
   from "source"
   include "**/*.java"
}

task copy(type: Copy) {
   into "target"
   with baseSpec
}

CopySpec copySpec(行动)Action<? super CopySpec>

创建一个CopySpec稍后可用于复制文件或创建存档的文件。给定的操作用于CopySpec在此方法返回之前对其进行配置。

void defaultTasksString...默认任务)

设置该项目的默认任务的名称。当开始构建时未提供任务名称时,将使用这些任务。

boolean deleteObject...路径)

删除文件和目录。

这不会遵循符号链接。如果您也需要遵循符号链接,请使用Project.delete(org.gradle.api.Action).

WorkResult delete(行动)Action<? super DeleteSpec>

删除指定的文件。给定的操作用于配置DeleteSpec,然后用于删除文件。

例子:

project.delete {
    delete 'somefile'
    followSymlinks = true
}

void dependencyLocking(配置)Action<? super DependencyLockingHandler>

配置依赖锁定

Project evaluationDependsOnString小路)

声明该项目对具有给定路径的项目具有评估依赖性。

ExecResult execClosure关闭)

执行外部命令。该闭包配置了一个ExecSpec.

ExecResult exec(行动)Action<? super ExecSpec>

执行外部命令。

给定的操作配置 a ExecSpec,用于启动进程。此方法会阻塞,直到进程终止并返回其结果。

File fileObject小路)

解析相对于该项目的项目目录的文件路径。此方法根据其类型转换提供的路径:

  • A CharSequence,包括StringGString。相对于项目目录解释。以 开头的字符串file:被视为文件 URL。
  • A File。如果文件是绝对文件,则按原样返回。否则,文件的路径将被解释为相对于项目目录。
  • A Path。该路径必须与默认提供程序关联,并以与 的实例相同的方式处理File
  • 一个URIURL。 URL 的路径被解释为文件路径。仅file:支持 URL。
  • 一个DirectoryRegularFile
  • Provider任何受支持类型的A。提供者的值是递归解析的。
  • A TextResource
  • Closure返回任何受支持类型的Groovy或 Kotlin 函数。闭包的返回值是递归解析的。
  • Callable返回任何支持的类型的A。可调用对象的返回值是递归解析的。

File fileObject路径,PathValidation验证)

解析相对于该项目的项目目录的文件路径,并使用给定的方案对其进行验证。请PathValidation参阅 参考资料 可能的验证列表。

ConfigurableFileTree fileTreeObject基本目录)

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

def myTree = fileTree("src")
myTree.include "**/*.java"
myTree.builtBy "someTask"

task copy(type: Copy) {
   from myTree
}

a 中的文件顺序FileTree并不稳定,即使在一台计算机上也是如此。

ConfigurableFileTree fileTreeObjectbaseDir,ClosureconfigureClosure)

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)。该闭包将用于配置新的文件树。文件树作为其委托传递给闭包。例子:

def myTree = fileTree('src') {
   exclude '**/.data/**'
   builtBy 'someTask'
}

task copy(type: Copy) {
   from myTree
}

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

a 中的文件顺序FileTree并不稳定,即使在一台计算机上也是如此。

ConfigurableFileTree fileTreeObject基本目录,配置操作)Action<? super ConfigurableFileTree>

ConfigurableFileTree使用给定的基目录创建一个新目录。给定的 baseDir 路径按照 进行评估Project.file(java.lang.Object)。该操作将用于配置新的文件树。例子:

def myTree = fileTree('src') {
   exclude '**/.data/**'
   builtBy 'someTask'
}

task copy(type: Copy) {
   from myTree
}

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

a 中的文件顺序FileTree并不稳定,即使在一台计算机上也是如此。

ConfigurableFileTree fileTree(参数)Map<String, ?>

ConfigurableFileTree使用提供的参数映射创建一个新的。该映射将作为属性应用到新文件树上。例子:

def myTree = fileTree(dir:'src', excludes:['**/ignore/**', '**/.data/**'])

task copy(type: Copy) {
    from myTree
}

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

a 中的文件顺序FileTree并不稳定,即使在一台计算机上也是如此。

ConfigurableFileCollection filesObject路径,ClosureconfigureClosure)

ConfigurableFileCollection使用给定的路径创建一个新的。路径按照 进行评估Project.files(java.lang.Object[])。文件集合是使用给定的闭包配置的。文件集合作为其委托传递给闭包。例子:

files "$buildDir/classes" {
    builtBy 'compile'
}

返回的文件集合是惰性的,因此仅在查询文件集合的内容时才评估路径。文件集合也是实时的,因此每次查询集合的内容时都会评估上述内容。

ConfigurableFileCollection filesObject路径,配置操作)Action<? super ConfigurableFileCollection>

ConfigurableFileCollection使用给定的路径创建一个新的。路径按照 进行评估Project.files(java.lang.Object[])。文件集合是使用给定操作配置的。例子:

files "$buildDir/classes" {
    builtBy 'compile'
}

返回的文件集合是惰性的,因此仅在查询文件集合的内容时才评估路径。文件集合也是实时的,因此每次查询集合的内容时都会评估上述内容。

返回ConfigurableFileCollection包含给定文件的a。您可以将以下任何类型传递给此方法:

  • A CharSequence,包括StringGString。根据 相对于项目目录进行解释Project.file(java.lang.Object)。以 开头的字符串file:被视为文件 URL。
  • A File。根据 相对于项目目录进行解释Project.file(java.lang.Object)
  • A Path,按照Project.file(java.lang.Object)
  • 一个URIURL。 URL 的路径被解释为文件路径。仅file:支持 URL。
  • 一个DirectoryRegularFile
  • Collection包含任何受支持类型的对象的、Iterable或数组。集合的元素被递归地转换为文件。
  • A FileCollection。集合的内容包含在返回的集合中。
  • 一个FileTreeDirectoryTree。树的内容包含在返回的集合中。
  • Provider任何受支持类型的A。提供者的值被递归地转换为文件。如果提供程序表示任务的输出,则当文件集合用作另一个任务的输入时,将执行该任务。
  • Callable返回任何支持的类型的A。该方法的返回值call()被递归地转换为文件。返回值null被视为空集合。
  • Closure返回此处列出的任何类型的Groovy或 Kotlin 函数。闭包的返回值被递归地转换为文件。返回值null被视为空集合。
  • A Task。转换为任务的输出文件。如果文件集合用作另一个任务的输入,则执行该任务。
  • A TaskOutputs。转换为相关任务的输出文件。如果文件集合用作另一个任务的输入,则执行该任务。
  • 其他任何内容都将被视为错误。

返回的文件集合是惰性的,因此仅在查询文件集合的内容时才评估路径。文件集合也是实时的,因此每次查询集合的内容时都会评估上述内容。

返回的文件集合维护所提供路径的迭代顺序。

返回的文件集合维护生成文件的任务的详细信息,以便在将此文件集合用作某个任务的输入时执行这些任务。

此方法还可用于创建一个空集合,稍后可以对其进行修改以添加元素。

Project findProjectString小路)

按路径定位项目。如果路径是相对路径,则它被解释为相对于该项目。

Object findPropertyString属性名称)

返回给定属性的值,如果未找到,则返回 null。该方法按如下方式定位属性:

  1. 如果此项目对象具有给定名称的属性,则返回该属性的值。
  2. 如果该项目具有给定名称的扩展名,则返回该扩展名。
  3. 如果此项目的约定对象具有给定名称的属性,则返回该属性的值。
  4. 如果该项目具有给定名称的额外属性,则返回该属性的值。
  5. 如果该项目具有给定名称的任务,则返回该任务。
  6. 在此项目的祖先项目中搜索具有给定名称的约定属性或额外属性。
  7. 如果没有找到,则返回空值。

Map<Project, Set<Task>> getAllTasksboolean递归)

返回此项目及其子项目(可选)中包含的任务的映射。

Set<Task> getTasksByNameString名称,boolean递归)

返回此项目及其子项目中包含的具有给定名称的任务集。 注意:这是一项昂贵的操作,因为它需要配置所有项目。

boolean hasPropertyString属性名称)

确定该项目是否具有给定的属性。有关项目可用属性的详细信息,请参阅此处。

ExecResult javaexecClosure关闭)

执行 Java 主类。该闭包配置了一个JavaExecSpec.

ExecResult javaexec(行动)Action<? super JavaExecSpec>

执行外部 Java 进程。

给定的操作配置 a JavaExecSpec,用于启动进程。此方法会阻塞,直到进程终止并返回其结果。

File mkdirObject小路)

创建一个目录并返回一个指向该目录的文件。

void normalization(Action<? super InputNormalizationHandler> configuration)

Configures input normalization.

Project project(String path)

Locates a project by path. If the path is relative, it is interpreted relative to this project.

Project project(String path, Closure configureClosure)

Locates a project by path and configures it using the given closure. If the path is relative, it is interpreted relative to this project. The target project is passed to the closure as the closure's delegate.

Project project(String path, Action<? super Project> configureAction)

Locates a project by path and configures it using the given action. If the path is relative, it is interpreted relative to this project.

Object property(String propertyName)

Returns the value of the given property. This method locates a property as follows:

  1. If this project object has a property with the given name, return the value of the property.
  2. If this project has an extension with the given name, return the extension.
  3. If this project's convention object has a property with the given name, return the value of the property.
  4. If this project has an extra property with the given name, return the value of the property.
  5. If this project has a task with the given name, return the task.
  6. Search up through this project's ancestor projects for a convention property or extra property with the given name.
  7. If not found, a MissingPropertyException is thrown.

String relativePath(Object path)

Returns the relative path from the project directory to the given path. The given path object is (logically) resolved as described for Project.file(java.lang.Object), from which a relative path is calculated.

String relativeProjectPath(String path)

Converts a name to a project path relative to this project.

void setProperty(String name, Object value)

Sets a property of this project. This method searches for a property with the given name in the following locations, and sets the property on the first location where it finds the property.

  1. The project object itself. For example, the rootDir project property.
  2. The project's Convention object. For example, the srcRootName java plugin property.
  3. The project's extra properties.

If the property is not found, a MissingPropertyException is thrown.

void subprojects(Action<? super Project> action)

Configures the sub-projects of this project

This method executes the given Action against the sub-projects of this project.

WorkResult sync(Action<? super SyncSpec> action)

Synchronizes the contents of a destination directory with some source directories and files. The given action is used to configure a SyncSpec, which is then used to synchronize the files.

This method is like the Project.copy(org.gradle.api.Action) task, except the destination directory will only contain the files copied. All files that exist in the destination directory will be deleted before copying files, unless a preserve option is specified.

Example:

project.sync {
   from 'my/shared/dependencyDir'
   into 'build/deps/compile'
}

Note that you can preserve output that already exists in the destination directory:

project.sync {
    from 'source'
    into 'dest'
    preserve {
        include 'extraDir/**'
        include 'dir1/**'
        exclude 'dir1/extra.txt'
    }
}

FileTree tarTree(Object tarPath)

创建一个新文件FileTree,其中包含给定 TAR 文件的内容。给定的 tarPath 路径可以是:

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

除非通过资源的自定义实现,否则 tar 树会尝试根据文件扩展名猜测压缩情况。

您可以将此方法与Project.copy(org.gradle.api.Action) 解压 TAR 文件的方法结合使用:

task untar(type: Copy) {
  from tarTree('someCompressedTar.gzip')

  //tar tree attempts to guess the compression based on the file extension
  //however if you must specify the compression explicitly you can:
  from tarTree(resources.gzip('someTar.ext'))

  //in case you work with unconventionally compressed tars
  //you can provide your own implementation of a ReadableResource:
  //from tarTree(yourOwnResource as ReadableResource)

  into 'dest'
}

Task taskString姓名)

Task使用给定名称创建并将其添加到此项目中。调用此方法相当于Project.task(java.util.Map, java.lang.String)使用空选项映射进行调用。

将任务添加到项目后,它将作为项目的属性提供,以便您可以在构建文件中按名称引用该任务。请参阅此处了解更多详情

如果该项目中已存在具有给定名称的任务,则会引发异常。

Task taskString名称,Closure配置关闭)

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的闭包来配置任务。

将任务添加到项目后,它将作为项目的属性提供,以便您可以在构建文件中按名称引用该任务。请参阅此处了解更多详情

Task taskString名称,配置操作)Action<? super Task>

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的操作来配置任务。

将任务添加到项目后,它将作为项目的属性提供,以便您可以在构建文件中按名称引用该任务。请参阅此处了解更多详情

Task task(参数,名称)Map<String, ?>String

Task使用给定名称创建并将其添加到此项目中。可以将创建选项映射传递给此方法来控制任务的创建方式。可以使用以下选项:

选项描述默认值
type要创建的任务的类。DefaultTask
overwrite替换现有任务?false
dependsOn该任务所依赖的任务名称或一组任务名称[]
action关闭或Action添加到任务中。null
description任务的描述。 null
group该任务所属的任务组。 null

将任务添加到项目后,它将作为项目的属性提供,以便您可以在构建文件中按名称引用该任务。请参阅此处了解更多详情

如果该项目中已存在具有给定名称的任务并且该override选项未设置为 true,则会引发异常。

Task task(参数、名称、configureClosure)Map<String, ?>StringClosure

Task使用给定名称创建并将其添加到此项目中。在任务返回之前,执行给定的闭包来配置任务。可以将创建选项映射传递给此方法来控制任务的创建方式。请参阅 参考资料了解Project.task(java.util.Map, java.lang.String)可用选项。

将任务添加到项目后,它将作为项目的属性提供,以便您可以在构建文件中按名称引用该任务。请参阅此处了解更多详情

如果该项目中已存在具有给定名称的任务并且该override选项未设置为 true,则会引发异常。

URI uriObject小路)

将文件路径解析为 URI,相对于该项目的项目目录。按照 中的描述评估提供的路径对象Project.file(java.lang.Object),但支持任何 URI 方案,而不仅仅是“file:”URI。

FileTree zipTreeObjectzip路径)

创建一个新文件FileTree,其中包含给定 ZIP 文件的内容。给定的 zipPath 路径按照 进行评估Project.file(java.lang.Object)。您可以将此方法与Project.copy(org.gradle.api.Action) 解压缩 ZIP 文件的方法结合起来。

返回的文件树是惰性的,因此仅当查询文件树的内容时才扫描文件。文件树也是活动的,因此每次查询文件树的内容时都会扫描文件。

void appDirName(String应用程序目录名称)

允许更改应用程序目录。默认为“src/main/application”。

EarPluginConvention deploymentDescriptor(配置动作)Action<? super DeploymentDescriptor>

配置此 EAR 存档的部署描述符。

执行给定的操作来配置部署描述符。

void libDirName( StringlibDirName)

允许更改 EAR 文件中的库目录。默认为“lib”。

Manifest manifest()

创建 的一个新实例Manifest

Manifest manifestClosure关闭)

创建并配置 的新实例Manifest。给定的闭包在返回之前配置新的清单实例。

Manifest manifest(行动)Action<? super Manifest>

创建并配置 的新实例Manifest

脚本块详细信息

allprojects{ }

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

此方法针对该项目及其子项目执行给定的闭包。目标Project 作为闭包的委托传递给闭包。

代表们:
每个Projectallprojects

ant{ }

AntBuilder针对该项目执行给定的关闭。您可以在构建文件中使用它来执行 ant 任务。作为闭包的委托传递AntBuild给闭包。请参阅 javadoc 中的示例Project.getAnt()

代表们:
AntBuilderant

artifacts{ }

配置该项​​目的已发布工件。

此方法针对该项目执行给定的闭包ArtifactHandler。作为闭包的委托传递ArtifactHandler给闭包。

例子:

configurations {
  //declaring new configuration that will be used to associate with artifacts
  schema
}

task schemaJar(type: Jar) {
  //some imaginary task that creates a jar artifact with the schema
}

//associating the task that produces the artifact with the configuration
artifacts {
  //configuration name and the task:
  schema schemaJar
}

buildscript{ }

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

给定的闭包是针对该项目的ScriptHandler.作为闭包的委托传递ScriptHandler给闭包。

configurations{ }

配置该项​​目的依赖配置。

此方法针对该项目执行给定的闭包ConfigurationContainer 。作为闭包的委托传递ConfigurationContainer给闭包。

例子:

请参阅文档ConfigurationContainer

dependencies{ }

配置此项目的依赖项。

此方法针对该项目执行给定的闭包DependencyHandler。作为闭包的委托传递DependencyHandler给闭包。

例子:

请参阅文档DependencyHandler

repositories{ }

配置该项​​目的存储库。

此方法针对该项目执行给定的闭包RepositoryHandler。作为闭包的委托传递RepositoryHandler给闭包。

subprojects{ }

配置该项​​目的子项目。

此方法针对该项目的每个子项目执行给定的闭包。目标Project作为闭包的委托传递给闭包。

代表们:
每个Projectsubprojects

application{ }

配置JavaApplication应用程序插件添加的内容。

checkstyle{ }

配置CheckstyleExtension由 checkstyle 插件添加的内容。

codenarc{ }

配置CodeNarcExtension由 codenarc 插件添加的内容。

distributions{ }

配置DistributionContainer由分发插件添加的内容。

deploymentDescriptor{ }

配置此 EAR 存档的部署描述符。

执行给定的闭包来配置部署描述符。作为其委托传递DeploymentDescriptor给闭包。

eclipse{ }

配置EclipseModel由eclipse插件添加的。

代表们:
EclipseModeleclipse

idea{ }

配置IdeaModelidea插件添加的。

代表们:
IdeaModelidea

jacoco{ }

配置JacocoPluginExtensionjacoco 插件添加的内容。

base{ }

配置BasePluginExtensionjava插件添加的。

java{ }

配置JavaPluginExtensionjava插件添加的。

reporting{ }

配置ReportingExtensionjava插件添加的。

sourceSets{ }

配置该项​​目的源集。

执行给定的闭包来配置SourceSetContainer.作为其委托传递SourceSetContainer 给闭包。

请参阅下面的示例,了解如何SourceSet访问“main”以及如何SourceDirectorySet配置“java”以从编译中排除某些包。

plugins {
    id 'java'
}

sourceSets {
  main {
    java {
      exclude 'some/unwanted/package/**'
    }
  }
}

pmd{ }

配置PmdExtensionpmd 插件添加的内容。

代表们:
PmdExtensionpmd

publishing{ }

配置PublishingExtension发布插件添加的内容。

signing{ }

配置SigningExtension签名插件添加的内容。

visualStudio{ }

配置VisualStudioRootExtension由 Visual-studio 插件添加的内容。

xcode{ }

配置XcodeRootExtensionxcode插件添加的。