【gradle】从零开始学习

1.  认识

           ★ 简单来说就是一款构建工具。其他构件工具 如 Maven ,Ant.

           ★ gradle 的特色:

                    ① : 声明式的构建和基于约定的构建 : gradle 的 核心是基于 Groovy 的可扩展的特定领域语言 (DSL:Domain Specific Language)

                          ② : 基于编程的依赖语言

                          ③ : 结构化的构建

                          ④ : Multi-project builds

                          ⑤ : Gradle is the first build integration tool

                          ⑥ : Groovy

2. 安装

             ★ 首先应保证已经安装 jdk 6 或者以上的版本。

             ★ gradel 直接下载不需要安装 ,需要配置环境变量 GRADLE_HOME ,并加入到 PATH 环境变量中去。通过 gradle -v 来验证是否配置成功

             *: 当然可以不用安装gradle  , 可以使用 gradle wrapper 管理 gradle, 下面会有介绍


3.   idea(2016.1 ) 创建 gradle 项目流程   (idea 支持 Gradle SDK 1.2 及以后的版本)

             ①  File → new → project → 会出现一个 New Project 的弹出框

             ② 左侧选择 Gradle → 配置 project SDK(java) 路径  → 选择 apply plugin (选择 java 会集成java 插件 ,选择 web 会集成 ‘war’ 插件) → 点击next

             ③ 设置项目的 GroupId、ArtifactId 、 Version → 点击 next

             ④ 选择创建空的目录(会自动创建 java,resource,webapp目录),这里是设置 gradle 的一些细节  → 点击 next

             ⑤ 显示项目名称、项目地址等 → 点击 finish

            关于 idea 的 Gradle Tool Window  (通过 view → ToolWindows → Gradle 打开,如果不存在Gradle 则需要关闭项目重新导入项目) 参看 : idea 说明文档:

                     将 Gradle tasks ,以及 build.gradle 中所做的所有改变全部展示在此 ,每次在 build.gradle 中做完修改需要点击同步按钮进行同步


4. 构建脚本基础


          4.1  gradle 中围绕两个基本概念    :

                         ①  projects   ( 项目 )    :  每个 gradle 的构建 由一个或者多个 project 组成 ,

                         ②  tasks  (任务)     :   每个 project 由一个或者多个 task 组成。

         4.2  hello world

                gradle 执行  task  的命令行语法如下 :

gradle [task]   //使用本地安装的 gradle 执行 task
gradlew [task]  // 使用 Wrapper 下载的 gradle 执行task  ,使用 gradle Wrapper 方便 gradle 的版本管理 ,需要使用的时候执行命令就可以下载,不需要配置
 

                 ★完整形式

build.gradle

task hello {
       doLast {      //doLast 为关键词
               println 'Hello world!'
       }
}
cmd 中运行


gradle -q hello    //-q 相当于静默执行

                 ★简写形式


task hi << {
println 'Hi!'
}


               查看 项目中 所有可执行的 task :

gradle -q tasks      //-q 静默执行
gradle -q tasks  --all
             

               查看项目的依赖 :

gradle -q dependencies    //查看 root project 的依赖
gradle -q dependencies module:dependencies   //查看 root project 和子项目 module 的依赖


           4.3 构建脚本即代码  (基于 Groovy 代码,Groovy 和 java 很相似 ,只是 Groovy 比 java 写法 更简单)

     

           4.4  task 之间的依赖   (  dependsOn:  )

task hi << {
    println 'hi'
}
task intr(dependsOn: hi) << {
    println 'i`m xlchen'
}


             4.8  Project  API

                           ★ 标准的  project properties


i.e :

build.gradle

println name        //项目名称
println path         //项目绝对路径
println project.name    //项目名称

       

cmd 中

gradle -q check //输出上面的几个属性


             4.10 声明变量   :两种方式

                          ① Local variables   : def 关键字定义  ,是 groovy 语言中的一个特色

def dest = "dest"

                          ② extra properties :可以用来集中定义jar 包版本

ext {
    springVersion = "3.1.0.release"
    email = "xxx@vastio.com"
}

task exttest << {
    println springVersion
    println email
}


5. 基于已有的脚本 执行

         5.1 task

                  ★ 执行多个任务  : 每个任务最多执行一次 :无论是命令行中指定多个,还是很强的依赖

gradle compile test  //按顺序执行compile 任务 和 test 任务

                  ★ 不执行某个任务 : -x  或者  --exclude-task  [taskName]

gradle dist -x test //不执行test 任务

          5.2  The Gradle Wrapper   

                    ★ :  可以不用预先安装好 gradle , 便于统一 gradle 版本 ,前提是要集成 gradle wrapper ,由以下几部分组成

                                · gradlew  (Unix shell 脚本)

                                · gradlew.bat  (windows 批处理文件)

                                · gradle / wrapper / gradle-wrapper.jar  (wrapper jar)

                                ·gradle / wrapper / gradle-wrapper.properties   (wrapper properties)  : 这里记录了项目中使用到的gradle 的版本

                    ★ : 如果项目中已经设置了 wrapper  ,可以执行以下命令下载 gradle  ,下载的版本记录在 gradle-wrapper.properties 中

                            ①windows

gradlew <task>    

如:
gradlew idea   //前提是已经集成了 idea 插件   apply plugin 'idea'
                           ② linux / Mac

./gradlew <task>

                    ★ : 修改 gradle 的版本命令

gradle wrapper --gradle-version <version>

i.e  :  gradle wrapper --gradle-version 2.1

                              当然也可以在 build.gradle 配置文件中配置task
task wrapper(type: Wrapper){
     gradleVersion = '2.0'
}

6 .创建 JVM 项目

         ★ Java Plugin

                      引用方式 :

apply plugin:'java'


                      作用 :

                                   Source sets   的概念  :一起编译并且执行的一组资源文件  ,定义了两种标准的 source sets  :  main  ,  test;

println sourceSets.main.output.classesDir
println sourceSets['main'].output.classesDir     //两个都是输出 java 文件编译后所存放的文件目录

sourceSets.main.output.classesDir = file("bin") //修改输出目录  ,file 为 gradle 的创建文件的 API

编码的设置

compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'


                                   project layouts   : 如 java 文件目录结构  一般是  src/main/java    src/main/test/java 等等 ; 

Directory		Meaning
src/main/java		Production Java source
src/main/resources		Production resources
src/test/java		Test Java source
src/test/resources		Test resources
src/sourceSet/java		Java source for the given source set
src/sourceSet/resources		Resources for the given source set


                                   task   :  提供一些 task  ;

        eg :

gradle build     //会编译并测试 代码最后创建 jar 包
gradle clean     //清空
gradle check     //编译并测试

                            各种  task 之间关系如下图:


                  ★ jar 包依赖管理

                                 增加 Maven 仓库   :  一个公共的 Maven 仓库

repositories {
       mavenCentral()  // maven 的仓库中心
}
或者
repositorise {
       jcenter()    // Bintray 的  Jcenter 库
}
或者其他的远程仓库
repositories{
     maven {
            url "http://repo.mycompany.com/maven2"
      }
}
或者本地仓库

                                 添加依赖

                    方式 ①

dependencies {
      compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
      testCompile group: 'junit', name: 'junit', version: '4.+'
}

                      方式②

ext {
    springVersion = '4.2.2.RELEASE'
}

dependencies {
    compile(
            'org.springframework:spring-webmvc:' + springVersion,
            'org.apache.commons:commons-lang3:3.4',
    )
}

      

                  注意 : ★  providedCompile  只有 在 提供了插件 apply plugin : 'war' 时 才可以使用。



 

  


                 


《可以参看 : gradle 官网


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值