本文是 学习笔记
课程地址 https://classroom.udacity.com/courses/ud867
资源
文档
gradle
https://docs.gradle.org/current/userguide/tutorial_using_tasks.html
groovy
视频教程
https://classroom.udacity.com/courses/ud867
设置环境变量
到bin目录
xxx\gradle\gradle-3.3-all\gradle-3.3\bin
测试是否配置成功
gradle -v
------------------------------------------------------------
Gradle 3.3
------------------------------------------------------------
Build time: 2017-01-03 15:31:04 UTC
Revision: 075893a3d0798c0c1f322899b41ceca82e4e134b
Groovy: 2.4.7
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_152 (Oracle Corporation 25.152-b16)
OS: Windows 7 6.1 amd64
HellowWorld
task helloWorld {
doLast{
println 'helloWorld'
}
}
运行结果
生成文件
运行命令缩写:缩写名称必须是唯一的
gradle -q helloWorld 可以缩写为
>gradle -q hW
gradle -q tasks命令
E:\coder\gradle>gradle -q tasks
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root projec
t 'gradle'.
components - Displays the components produced by root project 'gradle'. [incubat
ing]
dependencies - Displays all dependencies declared in root project 'gradle'.
dependencyInsight - Displays the insight into a specific dependency in root proj
ect 'gradle'.
dependentComponents - Displays the dependent components of components in root pr
oject 'gradle'. [incubating]
help - Displays a help message.
model - Displays the configuration model of root project 'gradle'. [incubating]
projects - Displays the sub-projects of root project 'gradle'.
properties - Displays the properties of root project 'gradle'.
tasks - Displays the tasks runnable from root project 'gradle'.
To see all tasks and more detail, run gradle tasks --all
To see more detail about a task, run gradle help --task <task>
Gradle守护进程
开启守护进程
gradle -q hW –daemon
关闭守护进程
gradle -q hW –stop
gradle build
每一行输出都代表一个可执行任务。
UP-TO-DATE :这个任务被跳过
E:\coder\xxxx>gradle build
Download https://jcenter.bintray.com/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api.pom
....
The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:prepareDebugDependencies
...
:app:testReleaseUnitTest UP-TO-DATE
:app:test UP-TO-DATE
:app:check
:app:build
BUILD SUCCESSFUL
Wrapper
- 将包装器任务添加到构建脚本中
task wrapper(type :Wrapper){
gradleVersion ='3.3'
}
- Shell gradlew.bat
XXXX\gradle>gradle wrapper
The Task.leftShift(Closure) method has been deprecated and is scheduled to be re
moved in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_dsxvp7q1t5ojsp9yi77cbwoeq.run(E:\coder\gradle\build.gradle:7)
:wrapper
BUILD SUCCESSFUL
生成.bat 文件
Gradle属性
Gradle属性可以在gradle.properties文件中声明直接添加到项目中
gradle.properties
exampleProp =myValue
someOtherProp=445
可以通过下边的方式访问项目中的这两个属性
assert project.exampleProp =='myValue'
task helloWorld {
doLast{
println 'helloWorld'
println "second propetry:$someOtherProp"
}
}
task
在线APi
https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskContainer.html#create(java.util.Map)
task的重要功能:
- 任务动作(task action):定义了一个当任务执行时的最小工作单元。
- 任务依赖(task dependency)
- << 等价于 doLast
version = '0.1-'
task printVersion{
doFirst{
println "Before reading the project version"
}
doLast{
println "version:$version"
}
}
printVersion.doFirst{println "First action" }
printVersion << { println "Last action" }
输出内容
E:\coder\gradle>gradle -q printVersion
First action
Before reading the project version
version:0.1-
Last action
访问DefaultTask属性
要运行您的首个任务,请从此处的代码库中下载课程代码,或者您可以从 https://github.com/udacity/ud867.git. 中克隆
然后按照 1.01-Exercise-RunYourFirstTask 文件夹的“build.gradle”文件中的说明操作,记住,您始终都可以在相同文件夹的“solution.gradle”文件中寻求帮助!
构建参数
比如需要利用,3种方法实现
task printGreeting{
doLast{
println greeting
}
}
- 1写到gradle.properties文件
greeting ="Hello from a properties file"
- 2命里传入参数
Starting a Gradle Daemon (subsequent builds will be faster)
- 3.在build.gradle文件使用ext
ext{
greeting="from build.gradle";
}