gradle与maven的区别

都是一个构建工具,也相当于一个依赖管理器;Maven使用固定配置文件,Gradle使用DSL来编写构建脚本,并且使用task来组合构建任务

Gradle相对于Maven有什么缺点吗?

Gradle上手难度较大,需要学习基于Groovy和Java 6的Gradle DSL或Kotlin DSL来编写构建脚本

Mavan解决包冲突

1.声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。

2.路径近者优先原则:直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。

3. 直接排除:当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号。因为此时依赖包使用的版本和默认和本jar包一样。

Gradle

一款最新的,功能最强大的构建工具,用它逼格更高
使用程序代替传统的XML配置,项目构建更灵活
丰富的第三方插件,让你随心所欲使用
Maven、Ant能做的,Gradle都能做,但是Gradle能做的,Maven、Ant不一定能做。

groovy 语法备忘: https://www.jianshu.com/p/46e7a91643f1

Gradle官方文档:https://docs.gradle.org/current/userguide/userguide.html

快速开始demo:https://gradle.org/guides/#getting-started

一个最基础的build.gradle模板

group 'cn.yuan'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'war'
sourceCompatibility = 1.8
repositories {
    jcenter()
}
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    // https://mvnrepository.com/artifact/org.apache.activemq/activemq-all
    compile group: 'org.apache.activemq', name: 'activemq-all', version: '5.14.5'
}


换镜像
repositories {
jcenter()
}

修改缓存文件的位置:
增加一个环境变量GRADLE_USER_HOME,指定为想要存放的地方