gradle使用基础
说明
介绍gradle使用基础,gradle基础脚本结构和常规使用方法,以及一个简单的gradle示例.主要是为了简单的介绍gradle使用。
gradle环境配置
gradle可以通过两种方式运行gradle脚本:一种是通过配置系统gradle环境,运行gradle命令;一是通过gradle warpper配置临时gradle运行环境,通过脚本方式运行gradle命令。两种方式的效果相同,使得gradle的使用的成本更加方便。
1) 系统gradle配置
由于gradle常用于java工程的构建,所以gradle环境的配置需要依赖于java环境,需要先确认是否已经配置java运行环境,可以通过如下命令子啊dos命令框(windows)或者shell命令框(linux)中确认:
#:java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
确认返回的话,
- 手动下载gradle的二进制文件
地址为:https://gradle.org/releases/ 选择binary-only,可以选择你希望安装的版本,版本尽量不要太高3左右即可,放置高版本对于某些插件的适配存在一些绑定性质的配置要求。
文件解压并配置系统环境变量
解压文件不再多说(linux下可通过uzip进行解压),若是linux系统需要将解压后文件的bin目录添加到PATH路径下,可以通过export设置临时配置也可直接在enviroment中添加永久配置,配置如下:
$GRADLE_HOME=/opt/gradle/gradle-3.0 #解压后的gradle路径
export PATH=$PATH:$GRADLE_HOME/bin可以将这两句话添加在~/.bashrc,~/.profile,/etc/profile文件的末尾,然后通过如下命令进行激活:
#source ~/.profilewindows环境的话,通过右键”计算机”——>”属性”———>”系统属性”———>”高级”
———>”环境变量”进入环境变量设置界面。- 新建一个用户变量,变量名:GRADLE_HOME,变量地址指向解压后的gradle的文件的根目录。如:”C:\Program Files\gradle\gradle-3.0”
- 在系统变量path的变量值头部添加”%GRADLE_HOME%\bin;”
2) gradle wrapper临时环境
gradle wrapper一般临时环境一般是通过脚本gradlew或者gradlew.bat(windows)通过命令下载环境依赖/gradle/wrapper/* 文件.
运行gradle时可直接通过将gradle用gradlew或者gradlew.bat替代操作.可通过
如下命令生成gradle wrapper环境,之后可以将该部分文件拷贝到任意一个未安装gradle环境的机器上实现gradle工程管理。
#gradle wrapper #生成wrapper临时gradle环境
简单的gradle 示例
为了方便理解gradle wrapper的使用,本示例通过gradle wrapper搭载gradle环境实现一个简单的hello world输出操作.操作步骤如下所示:
1) 构建gradle wrapper环境
hfcai@:~/root/gradlebasisProject#gradle wrapper
Starting a Gradle Daemon (subsequent builds will be faster)
:wrapper
BUILD SUCCESSFUL
Total time: 6.409 secs
hfcai@:~/root/gradlebasisProject# ll
总用量 28
drwxrwxr-x 4 caihaifei caihaifei 4096 7月 3 13:52 ./
drwxrwxr-x 11 caihaifei caihaifei 4096 7月 3 13:51 ../
drwxrwxr-x 3 caihaifei caihaifei 4096 7月 3 13:52 gradle/
drwxrwxr-x 3 caihaifei caihaifei 4096 7月 3 13:52 .gradle/
-rwxrwxr-x 1 caihaifei caihaifei 5242 7月 3 13:52 gradlew*
-rw-rw-r-- 1 caihaifei caihaifei 2260 7月 3 13:52 gradlew.bat
如上,完成wrapper环境搭建,之后管理工程可不用提交“gradle/”文件夹,直接通过”./gradlew wrapper”重新创建。
2) 创建build.gradle脚本
build.gradle脚本是默认运行的构建脚本,用于配置和编译工程。这里,我们只是简单的演示一下gradle的使用,根目录创建文件build.gradle,写入如下代码:
task sayHello << {
println "Hello World!"
}
project.afterEvaluate {
println "config project parameters over."
}
如上,task 为gradle最小的运行单元,上面代码创建了一个sayHello的task,project.afterEvaluate为当前工程配置完成的一个回调,上面所有代码均采用groovy闭包(Closure)的形式进行表达,如想要详细了解,需要了解基础的groovy语法(或会单独就此做一篇介绍)。通过如下命令运行task达到配置的最终结果:
hfcai@:~/root/gradlebasisProject# ./gradlew sayHello
config project parameters over.
:sayHello
Hello World!
BUILD SUCCESSFUL
Total time: 0.552 secs
参考代码:https://github.com/fishly/gradleProject/tree/master/gradlebasisProject
gradle使用基础的更多相关文章
- Gradle语法基础解析
在从ADT转移到AndroidStudio下开发,必然会遇到Gradle脚本打包的问题.看懂一个脚本最基本的前提就是了解它的语法,我在转移开发环境的过程中,也开始接触学习Gradle,在此做了一些总结 ...
- Gradle Groovy 基础语法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 从头开始学gradle【Gradle 构建基础】
构建基础 Project 和 task:projects 和 tasks是 Gradle 中最重要的两个概念. 任何一个 Gradle 构建都是由一个或多个 projects 组成.每个 projec ...
- Gradle+Groovy基础篇
在Java项目中,有两个主要的构建系统:Gradle和Maven.构建系统主要管理潜在的复杂依赖关系并正确编译项目.还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中.对于简单的构 ...
- Gradle脚本基础全攻略
http://blog.csdn.net/yanbober/article/details/49314255
- Android studio:Groovy 与 Gradle 基础【三】
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255064&extra=page%3D2%26filter%3Dautho ...
- Android Studio系列教程四--Gradle基础
Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...
- 【转】Android Studio安装配置学习教程指南 Gradle基础--不错
原文网址:http://www.linuxidc.com/Linux/2015-02/113890p4.htm 其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了 ...
- Gradle中的buildScript,gradle wrapper,dependencies等一些基础知识
就想收藏一篇好文,哈哈,无他 Gradle中的buildScript代码块 - 黄博文 然后记录一些gradle的基础知识: 1.gradle wrapper就是对gradle的封装,可以理解为项目内 ...
随机推荐
- 微信两种签名算法MD5和HMAC-SHA256
在做微信接口开发的过程中, 有时候发现会提示签名校验失败, 一模一样的签名逻辑就是有些接口跑步通, 找了一圈发现挺坑的; 原来是有些接口的signType签名类型有区别, 有些接口signType要求 ...
- Good start is a half success(2019-04-07)
一. 回顾你过去将近3年的学习经历. (1)当初你报考的时候,是真正喜欢计算机这个专业吗?. (2)你现在后悔选择了这个专业吗?. (3)你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域 ...
- Nginx四层负载均衡概述
目录 Nginx四层负载均衡概述 什么是负载均衡 负载均衡应用场景 四层,七层集群架构 四层负载均衡总结 Nginx如何配置四层负载均衡 nginx四层负载均衡端口转发 Nginx四层负载均衡概述 什 ...
- hadoop节点动态删除与增加
动态删除 1)修改配置文件 修改hdfs-site.xml文件,适当减小dfs.replication的数量,增加dfs.hosts.exclude选项 vi hdfs-site.xml <pr ...
- android-ramdisk.img分析、recovery.img&boot.img执行过程【转】
一.ramdisk介绍 ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统.对于传统的磁盘文件系统来说,这样做的好处是可以极大提高文件访问速度: ...
- JavaScript中一个对象数组按照另一个数组排序
JavaScript中一个对象数组按照另一个数组排序 需求:排序 const arr1 = [33, 11, 55, 22, 66]; const arr2 = [{age: 55}, {age: 2 ...
- onload()方法只能在body标签中调用吗?怎么调用多个多个方法?
第一个问题: onload()方法并非只能在body标签中调用的,还可以在js中用window.onload = function() {函数名};来调用:另外img等标签也支持onload方法. 支 ...
- Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) E. Arson In Berland Forest 二分 前缀和
E. Arson In Berland Forest The Berland Forest can be represented as an infinite cell plane. Every ce ...
- Luogu P5298 [PKUWC2018]Minimax
好劲的题目啊,根本没往线段树合并方面去想啊 首先每种权值都有可能出现,因此我们先排个序然后一个一个求概率 由于此时数的值域变成\([1,m]\)(离散以后),我们可以设一个DP:\(f_{x,i}\) ...
- Python与用户交互
目录 一.为什么交互? 二.如何交互? 三.Python2的交互 一.为什么交互? 让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力.假设我们现在写了一个ATM系统取代了 ...