Gradle学习笔记

本文是 学习笔记
课程地址 https://classroom.udacity.com/courses/ud867

资源

文档

gradle

https://docs.gradle.org/current/userguide/tutorial_using_tasks.html

groovy

http://groovy-lang.org/

视频教程

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

  1. 将包装器任务添加到构建脚本中
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";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值