IDEA使用Gradle新建项目

一、什么是gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
其实gradle和maven差不多,都是自动化构建项目的。但是就现在的发展而言,gradle比maven在某些方面更有优势。

    1. 速度, Gradle 使用构建缓存、守护进程等方式提高编译速度。结果就是 Gradle 的编译速度要远超 Maven,平均编译速度比 Maven 快好几倍,而且项目越大,这个差距就越明显。
    1. 灵活性, Gradle 要比 Maven 灵活太多,虽然有时候灵活并不是一件好事情。但是大部分情况下,灵活一点可以极大的方便我们。Maven 死板的 XML 文件方式做起事情来非常麻烦。很多 Maven 项目都通过执行外部脚本的方式来完成一些需要灵活性的工作。而在 Gradle 中配置文件就是构建脚本,构建脚本就是编程语言(Groovy 编程语言)。
    1. 简洁性, 完成同样的功能,Gradle 脚本的长度要远远短于 Maven 配置文件的长度。虽然很多人都说 XML 维护起来不麻烦,但是维护一个光是依赖就有几百行的 XML 文件,不见得就比 Gradle 脚本简单。

二、搭建一个gradle项目

不需要我们自己去下载gradle的文件
使用idea新建一个项目

在这里插入图片描述
在这里插入图片描述
点击确认后,等待右下方gradle下载各种包,加载完成后项目结构如图

在这里插入图片描述
IDEA 默认使用 Gradle wrapper 来创建项目,所以无需安装 Gradle 也可以正常运行。这和 Maven 的项目结构几乎完全一致。Gradle 文件夹和 gradlew 那几个文件就是 Gradle wrapper 的文件,而.Gradle后缀名的文件正是 Gradle 的配置文件,对应于 Maven 的pom.xml。

三、依赖管理

在项目的build.gradle文件夹中
在这里插入图片描述

dependencies {
    
    
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

这个便是我们存放依赖包的地方
Gradle 依赖的粒度控制相较于 Maven 也更加精细,Maven 只有 compile、provided、test、runtime四种 scope,而 Gradle 有以下几种 scope:

  • implementation :默认的 scope。implementation的作用域会让依赖在编译和运行时均包含在内,但是不会暴露在类库使用者的编译时。举例,如果我们的类库包含了gson,那么其他人使用我们的类库时,编译时不会出现 gson 的依赖。
  • api :和 implementation 类似,都是编译和运行时都可见的依赖。但是 api允许我们将自己类库的依赖暴露给我们类库的使用者。
  • compileOnly 和runtimeOnly :这两种顾名思义,一种只在编译时可见,一种只在运行时可见。而runtimeOnly和Maven 的provided比较接近。
  • testImplementation :这种依赖在测试编译时和运行时可见,类似于 Maven 的test作用域。testCompileOnly和testRuntimeOnly:两种类似于compileOnly和runtimeOnly,但是作用于测试编译时和运行时。
    需要添加依赖的时候直接找到依赖包对应的gradle添加方式,例如,我这里添加了一个sonar的插件
dependencies {
    
    
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'org.codehaus.sonar.plugins:sonar-java-plugin:3.2.1'
}

在这里插入图片描述
构建完成后在右边对用的gradle项目管理下可以看到对应的依赖添加
在这里插入图片描述
gradle的仓库默认存放在
C:\Users\用户.gradle\caches\modules-2\files-2.1
在这里插入图片描述
也可以自己修改仓库位置
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43909848/article/details/107036514