Gradle学习笔记

1、maven遵循约定优于配置的规范,并且严格约定每个项目都要生成一个artifact(比如jar文件),同一份源码要创建两个不同的jar文件,需要创建两个项目
2、Gradle提供了DSL,也是遵循约定优于配置的方法,并且支持用动态语言Groovy来定义你的构建逻辑,大大降低xml的配置,另外可以支持ant和maven。
3、Gradle完全兼容Maven和Ivy仓库,你可以从中检索依赖也可以发布你的文件到仓库中,Gradle提供转换器能把Maven的构建逻辑转换成Gradle的构建脚本。
4、Gradle能够解析现有的Maven POM,从而得到传递性依赖的信息,并且引入到当前项目中,在此基础上,它也支持排除传递性依赖或者干脆关闭传递性依赖
5、Gradle下载后的文件缓存在 USER_HOME/.gradle/cache/
6、Gradle提供的Java Plugin定义了与Maven完全一致的项目布局:
src/main/java
src/main/resources
src/test/java
src/test/resources
Gradle中的定义:
sourceSets {
    main {
        java {
            srcDir 'src/java'
        }
        resources {
            srcDir 'src/resources'
        }
    }
}
7、Maven在Ant的基础上引入了依赖管理、仓库以及约定优于配置
8、Gradle提供任务组的概念,简而言之就是将一些任务归为一组,你可以执行这个组里面所有的任务,没有分组的任务在Other tasks
gradle -q tasks可以查询
要执行一个任务,只需要输入gradle + 任务名
运行的时候你要排除yayGradle0,你可以使用-x命令来完成
9、Gradle的命令行:
-i:Gradle默认不会输出很多信息,你可以使用-i选项改变日志级别为INFO
-s:如果运行时错误发生打印堆栈信息
-q:只打印错误信息
-?-h,--help:打印所有的命令行选项
-b,--build-file:Gradle默认执行build.gradle脚本,如果想执行其他脚本可以使用这个命令,比如gradle -b test.gradle
--offline:在离线模式运行build,Gradle只检查本地缓存中的依赖
-D, --system-prop:Gradle作为JVM进程运行,你可以提供一个系统属性比如:-Dmyprop=myValue
-P,--project-prop:项目属性可以作为你构建脚本的一个变量,你可以传递一个属性值给build脚本,比如:-Pmyprop=myValue
tasks:显示项目中所有可运行的任务
properties:打印你项目中所有的属性值
10、Gradle插件就是java插件,Java插件不仅仅只有编译和打包的功能,它给你的项目安排了一个标准布局,并确保你所有的任务都是按序执行
使用java插件:apply plugin: 'java'
java插件的一个约定就是源代码的位置,默认情况下插件搜索src/main/java路径下的文件,运行gradle build后打包的WAR文件在目录build/libs下
11、gradle能够自动检查哪些部分没有发生改变,就把这部分标记下来,省的重复执行
12、运行命令行gradle properties可以列出可配置的标准和插件属性以及他们的默认值
13、自定义项目:
1、修改你的项目和插件属性
//Identifies project’sversion through a number scheme
version = 0.1

//Sets Java version compilation compatibility to 1.6
sourceCompatibility = 1.6

//Adds Main-Class header to JAR file’s manifest
jar {
manifest {
    attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
}
}

//Replaces conventional source code directory with list of different directories
sourceSets {
    main {
        java {
            srcDirs = ['src']
        }
    }
//Replaces conventional test source code directory with list of different directories    
    test {
        java {
            srcDirs = ['test']
            }
        }
}
//Changes project output property to directory out
buildDir = 'out'

2、配置和使用外部依赖
mavenCentral:
    //Shortcut notation for configuring Maven Central 2 repository accessible under http://repo1.maven.org/maven2

repositories {
    mavenCentral()
}
3、定义依赖:
dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
}
14、两个web应用开发的插件War和Jetty,War插件继承了Java插件用来给web应用开发添加一些约定、支持打包War文件。Jetty是一个很受欢迎的轻量级的开源Web容器,Gradle的Jetty插件继承War插件,提供部署应用程序到嵌入的容器的任务。
//既然War插件继承了Java插件,所以你在应用了War插件后无需再添加Java插件
apply plugin: 'war'
Web应用默认的源代码目录是src/main/webapp
dependencies {
   providedCompile 'javax.servlet:servlet-api:2.5'
   runtime 'javax.servlet:jstl:1.1.2'
}
War插件引入了两个新的依赖配置,用于Servlet依赖的配置是providedCompile,这个用于那些编译器需要但是由运行时环境提供的依赖,你现在的运行时环境是Jetty,因此用provided标记的依赖不会打包到WAR文件里面,运行时依赖比如JSTL这些在编译器不需要,但是运行时需要,他们将成为WAR

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值