创建新的Gradle构建
遵循本指南,您将创建一个简单的Gradle项目,调用一些基本的Gradle命令,并了解Gradle如何管理项目。
你需要什么
- 大约11分钟
- 终端或IDE应用程序
- Java Development Kit(JDK),版本为1.7或更高版本(仅用于运行Gradle)
- 一个Gradle,版本4.7或更高
初始化一个项目
首先,让我们创建一个新的目录,我们的项目将发挥作用。
❯mkdir basic-demo
❯cd basic-demo
现在我们可以使用Gradle的init命令来生成一个简单的项目。我们将探索所有产生的事情,以确切知道发生了什么。
❯gradle init
启动Gradle守护进程(后续的构建会更快)
3s成功制造
2个可执行的任务:2个执行
该命令应显示“BUILD SUCCESSFUL”并生成以下“空”项目。如果没有,请确保Gradle 安装正确,并且JAVA_HOME环境变量设置正确。
这是Gradle为您生成的。
。
├──build.gradle 1⃣️
├──gradle
│└──包装
│├──gradle-wrapper.jar 2⃣️
│└──gradle-wrapper.properties 3⃣️
├──gradlew 4
├──gradlew.bat 5
└──settings.gradle 6
- 项目配置脚本,用于配置当前项目中的任务
- Gradle Wrapper可执行文件JAR
- Gradle Wrapper配置属性
- 用于基于Unix的系统的Gradle Wrapper脚本
- 适用于Windows的Gradle Wrapper脚本
- 用于配置哪些项目参与构建的设置配置脚本
gradle init可以生成各种不同类型的项目,甚至可以知道如何将简单pom.xml文件转换为Gradle。
创建一个任务
Gradle提供了用于通过基于Groovy或Kotlin的DSL创建和配置任务的API。A Project包含一组Tasks,每个s执行一些基本操作。
Gradle附带一个可以在自己的项目中配置的任务库。例如,有一种称为的核心类型Copy,它将文件从一个位置复制到另一个位置。这个Copy任务非常有用(详情请参阅文档),但在这里,再次,让我们保持简单。执行以下步骤:
- 创建一个名为的目录src。
- 添加目录中调用myfile.txt的src文件。内容是任意的(甚至可以是空的),但为了方便,将单行添加Hello, World!到它。
- 在主构建文件中定义一个叫做copytype 的任务Copy(注意大写字母)build.gradle,它将src目录复制到一个名为的新目录中dest。(您不必创建dest目录 - 任务将为您完成)。
task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
from "src"
into "dest"
}
在这里,group并且description可以是你想要的任何东西。你甚至可以忽略它们,但是这样做也会在tasks报告中忽略它们,稍后会用到它们。
现在执行你的新copy任务:
gra ./gradlew复制
:复制
0s成功建立
1个可执行任务:1个执行
验证它的工作通过检查,现在有一个名为预期myfile.txt在dest目录中,并且它的内容匹配在同一个内容src目录。
应用一个插件
Gradle包含一系列插件,Gradle插件门户中提供了许多更多的插件。插件中包含的其中一个插件就是base插件。结合调用的核心类型Zip,您可以使用配置的名称和位置创建项目的zip存档。
使用语法将base插件添加到build.gradle文件中plugins。确保plugins {}在文件顶部添加该块。
plugins {
id "base"
}
... rest of the build file ...
现在添加一个从该src目录创建一个zip存档的任务。
task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") {
from "src"
}
该base插件与设置工作,以创建一个名为存档文件basic-demo-1.0.zip中build/distributions的文件夹。
在这种情况下,只需运行新zip任务并查看生成的zip文件就是您期望的。
❯./gradlew zip
:压缩
0s成功建立
1个可执行任务:1个执行
探索和调试你的构建
让我们来看看在我们的新项目中我们还能用Gradle做些什么。还提供了对命令行界面的完整引用。
发现可用tasks
gra ./gradlew任务
>任务:任务
-------------------------------------------------- ----------
所有可从根项目运行的任务
-------------------------------------------------- ----------
存档任务
-------------
zip - 将源文件归档为zip文件
构建任务
-----------
组装 - 组装这个项目的输出。
构建 - 组装并测试此项目。
清除 - 删除构建目录。
构建安装任务
-----------------
init - 初始化一个新的Gradle构建。
包装器 - 生成Gradle包装器文件。
自定义任务
------------
复制 - 只需将源复制到构建目录
帮助任务
----------
buildEnvironment - 显示在根项目“basic-demo”中声明的所有buildscript依赖项。
组件 - 显示根项目“basic-demo”生成的组件。[孵育]
依赖项 - 显示在根项目'basic-demo'中声明的所有依赖项。
dependencyInsight - 显示对根项目“basic-demo”中特定依赖项的洞察。
dependentComponents - 显示根项目“basic-demo”中组件的相关组件。[孵育]
帮助 - 显示帮助信息。
模型 - 显示根项目'basic-demo'的配置模型。[孵育]
项目 - 显示根项目'basic-demo'的子项目。
属性 - 显示根项目'basic-demo'的属性。
任务 - 显示可从根项目'basic-demo'运行的任务。
验证任务
------------------
检查 - 运行所有检查。
规则
-----
模式:清理<TaskName>:清理任务的输出文件。
模式:build <ConfigurationName>:组装组件的工件。
模式:upload <ConfigurationName>:组装并上传属于配置的工件。
要查看所有任务和更多详细信息,请运行gradlew tasks --all
要查看有关任务的更多详细信息,请运行gradlew help --task <task>
0s成功建立
1个可执行任务:1个执行
分析和调试你的构建
Gradle还为您的构建提供了一个丰富的,基于Web的视图,称为构建扫描。
通过使用该–scan选项或通过将项目扫描插件明确应用到项目中,您可以免费在链接scans.gradle.com上创建构建扫描。将构建扫描发布到scans.gradle.com 将此数据传输到Gradle的服务器。要将数据保存在您自己的服务器上,请查看Gradle Enterprise。
尝试–scan在执行任务时添加构建扫描。
❯./gradlew zip --scan
0s成功建立
1个可执行的任务:1个最新的
将构建扫描发布到scans.gradle.com需要接受https://scans.gradle.com/terms-of-service中定义的服务条款。你接受这些条款吗?[是的,没有]
Gradle Cloud Services许可协议已被接受。
发布构建扫描...
https://gradle.com/s/repnge6srr5qs
如果您浏览构建扫描,则应该能够轻松找出执行哪些任务以及执行多长时间,应用了哪些插件等等。下次您在StackOverflow上调试某些内容时,请考虑共享构建扫描。
详细了解如何在Build Scan Plugin用户手册中配置和使用构建扫描。
发现可用的属性
该properties命令会告诉您关于项目的属性。
gra ./gradlew属性
这里只是一些可用的属性:
>任务:属性
-------------------------------------------------- ----------
根项目
-------------------------------------------------- ----------
buildDir:/Users/.../basic-demo/build
buildFile:/Users/.../basic-demo/build.gradle
描述:null
组:
名称:basic-demo
projectDir:/Users/.../basic-demo
版本:未指定
建立成功
该name项目的默认名称与该文件夹的名称相匹配。您也可以指定group和version属性,但目前它们按照原样采用默认值description。
该buildFile属性是完全限定的路径名build.gradle,它位于buildDir - 默认情况下,位于包含该文件的目录的build子目录中。projectDirbuild.gradle
您可以更改许多属性。例如,您可以尝试将以下行添加到build.gradle文件中,然后重新执行gradle properties。
description = "A trivial Gradle build"
version = "1.0"