来自Gradle的hello world

来自Gradle的hello world

Android Studio使用Gradle 构建项目

为什么要用Gradle?

Gradle是比较先进的构建系统,也是一个很好的构建工具,允许通过插件自定义构建逻辑

为什么Android Studio选择Gradle?

  • 使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(以下简称DSL)
  • 基于Groovy。DSL可以混合各种声明元素,用代码操控这些DSL元素达到逻辑自定义。
  • 支持已有的Maven或者Ivy仓库基础建设
  • 非常灵活,允许使用best practices,并不强制让你遵照它的原则来。
  • 其它插件时可以暴露自己的DSL和API来让Gradle构建文件使用。
  • 允许IDE集成,是很好的API工具

下载 配置

  1. Gradle官网 下载 最新版本(目前最新2.6)
  2. 设置环境变量
    • 添加GRADLE_HOME环境变量来制定Gradle的安装目录
    • 添加GRADLE_HOME\bin到path环境变量中
  3. 检查测试配置结果

    打开命令行,输入 gradle -v

Hello World

你可以通过 gradle命令运行一个Gradle构建. gradle命令会在当前目录中查找一个叫build.gradle 的文件. 我们称这个build.gradle文件为一个构建脚本 (build script),但是严格来说它是一个构建配置脚本 (build configuration script). 这个脚本定义了一个 project 和它的tasks.

创建 build.gradle 文件

task hello{
    doLast{
        println ‘Hello world!‘
    }
}

进入文件所在目录, 运行命令 gradle -q hello

输出:

这个构建脚本定义了一个独立的 task,叫做hello, 并且加入了一个 action. 当你运行 gradle hello, Gradle 执行叫做 hello 的 task, 也就是执行了你所提供的 action. 这个 action 是一个包含了一些 Groovy 代码的闭包.

-q : 代表quite模式.它不会生成 Gradle 的日志信息 (log messages), 所以用户只能看到tasks 的输出. 它使得的输出更加清晰. 你并不一定需要加入这个选项.

便捷的定义

task hello  << {
    println ‘Hello  world!‘
}

与前面的例子比较, doLast 被替换成了 << 它们有一样的功能, 但看上去更加简洁了

构建脚本代码

task upper << {
    String someString = ‘my_name‘
    println "Original: " + someString
    println "Upper case: "+ someString.toUpperCase()
}

运行: gradle -q upper

结果:

在 Gradle 任务里使用 Groovy

task count << {
    4.times { print "$it " }
    println ""
}

输出:

任务依赖

task hello << {
    println "Hello World!"
}

task intro(dependsOn: hello) << {
    println "I‘m Gradle"
}

运行: gradle -q intro

结果:

intro 依赖于 hello, 所以执行 intro 的时候 hello 命令会被优先执行来作为启动 intro 任务的条件.

在加入一个依赖之前, 这个依赖的任务不需要提前定义, 来看下面的例子

task taskY(dependsOn: ‘taskX‘) << {
    println "taskY"
}

task taskX << {
    println "taskX"
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-24 12:42:07

来自Gradle的hello world的相关文章

【转载】Gradle学习 第六章:构建脚本基础

转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle sits on top of two basic concepts: projects and tasks.<翻译> Gradle中的所有东西都是围绕两个基本概念:项目和任务. Every Gradle build is made up of one or more projects. What a

如何在Idea中编译构建Spring Framework 5.x

如何在Idea中编译构建Spring Framework 5.x 安装配置Gradle(略) 下载源码:git clone https://github.com/spring-projects/spring-framework.git 按照工程下import-into-idea.md文件的提示进行操作 The following has been tested against IntelliJ IDEA 2016.2.2 ## Steps _Within your locally cloned

加快AS的Gradle Build速度

随着项目的代码以及依赖库的日益增多,构建的速度却是越来越慢,Android Studio2.0 之后提供了Instant Run貌似福利来了,但经过一段时间的使用发现不尽如人意,最大的吐槽点是首次编译的速度真是慢的让人抓狂,编译当前的项目就得5分钟左右... 所以,我对Instant Run的目前选择是从入门到放弃...转而寻求其他方法,将构建耗时从5分钟减少到1分钟多,在此分享给感兴趣的同学. 一.创建配置文件 打开Mac用户名下的.gradle文件夹,在以下目录中: /Users/usern

Android Studio 更新gradle插件失败的解决办法

Android Studio 每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在"refresh"ing Gradle Project ,有时新建项目的时候报 Gradle Project Compile Error 等等相关的问题 解决这些问题办法是 首先打开android studio项目 找到项目目录gradle\wrapper\gradle-wrapper.properties这个文件 内容如下 #Wed Apr 10 15:27:10 PD

[Android Pro] Gradle Tips#2-语法

referece to : http://blog.csdn.net/lzyzsd/article/details/46935063 在第一篇博客中,我讲解了关于tasks和构建过程中task的不同阶段.在写完这篇之后,我意识到我应该更详尽的讲述一下Gradle.弄懂语法很重要,免得我们碰到复杂的构建脚本的时候直接晕菜.这篇文章我就会讲解一些语法上的东西. 语法 Gradle脚本是使用Groovy语言来写的.Groovy的语法有点像Java,希望你能接受它. 如果你对Groovy已经很熟悉了,可

gradle学习总结,偷窥android studio的底裤

原文来自微凉一季的博客http://jijiaxin89.com/2015/08/29/gradle-use-note/ 用过android studio的对gradle应该都不陌生了,gradle文件的基本配置大同小异,略做了解使用应该是没什么问题了.但是深入细致的了解一下对于理解项目还是很有帮助的,尤其是遇到一些配置复杂的github项目,不了解gradle可能会遇到跑不起来又束手无策的情形.下面对gradle相关知识.用法做一下总结. DSL (domain specific langua

Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle

随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者maven的继承的方式定义子项目,也提供了一种更为方便的集中配置的方式,大大减少了构建带来的复杂度.除此之外,Gradle还提供了清晰的Project树模型来映射多项目的组织结构.下面,让我们了解一下如何使用Gradle构建多项目. 1.多项目的定义和结构 Mulit project 设置是grad

构建工具的发展及Android Gradle快速上手

前话: 最近谷歌宣布官方不再维护Eclipse ADT了,之后将更加专注于Android Studio的功能和性能上的改进,早在2013年的Google IO大会上首次推出了Android Studio,当时刚出来的时候我就好奇的去下载体验了一下,想看一下新开发工具的优势在哪里,据官方介绍,最吸引我的一点就是使用Studio使用了Gradle编译系统,可以支持很灵活的定制需求,而我当时正在研究当成库使用的APK(就是现在的aar文件,不过当时还没有出身),刚好遇到了ADT编译系统的限制,所以当时

收藏-Gradle史上最详细解析

前言 对于Android工程师来说编译/打包等问题立即就成痛点了.一个APP有多个版本,Release版.Debug版.Test版.甚至针对不同APP Store都有不同的版本.在以前ROM的环境下,虽然可以配置Android.mk,但是需要依赖整个Android源码,而且还不能完全做到满足条件,很多事情需要手动搞.一个app如果涉及到多个开发者,手动操作必然会带来混乱.library工程我们需要编译成jar包,然后发布给其他开发者使用.以前是用eclipse的export,做一堆选择.要是能自