什么是gradle
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
简单来说gradle就是用于项目构建和依赖管理的,如果你用过maven的pom.xml就知道maven的配置和语法有点繁杂,gradle就简洁了很多。
gradle下载与安装
(1) 官网下载 目前最新版是gradle-7.2-rc-1-all.zip
(2) 下载后解压
(3) 环境变量配置
- 在C盘之外的其他盘里新建一个文件夹用于存储将来所有下载的jar包
(当然你也可以跳过这一步,如果你的C盘比较大)
因为默认的gradle下载的依赖jar包会存储在C盘用户目录下的.gradle目录下,如果你的C盘比较小,依赖的jar包比较多的话,C盘将来会不够用。 - 新建环境变量GRADLE_HOME
变量值是gradle解压后的目录

- path环境变量里新增 %GRADLE_HOME%\bin

(4) 检测是否安装成功
cmd命令行输入 gradle -v
gradle使用示例,利用gradle建立两个模块
(1) idea的gradle设置中修改gradle的存储目录(如果上面你没有跳过那一步)和 gradle 的位置

(2)新建gradle项目


构建完的项目目录如下:

由于我要构建多模块,所以src目录没用可以删除。
setting.gradle里用于配置项目里项目名称和包含哪些模块,如果你新加了模块idea会自动帮你修改setting.gradle文件。
(3) build.gradle配置
所以最终 build.gradle示例如下:
plugins {
id 'java' } group 'com.mytest' version '1.0-SNAPSHOT' description '开发' allprojects {
apply from: "${rootProject.projectDir}/build-libraries.gradle" repositories {
// 先去本地仓库查找有没有对应jar mavenLocal() //自己搭建的Sonatype Nexus远程仓库1 maven {
credentials {
username = "admin" password = "" } allowInsecureProtocol = true url 'http://127.0.0.1:8081/repository/maven-releases/' } //自己搭建的Sonatype Nexus远程仓库1 maven {
credentials {
username = "admin" password = "" } allowInsecureProtocol = true url 'http://127.0.0.1:8081/repository/maven-central/' } //阿里云仓库 maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/' } } } subprojects {
apply plugin: 'java' apply plugin: 'idea' [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' jar {
manifest.attributes provider: 'gradle' } } test {
useJUnitPlatform() }
build-libraries.gradle 示例如下:
library中前面的名字可以随便起,在后面模块引用的时候会用到
ext {
fastjsonVersion = '1.2.58' jedisVersion = '2.7.1' commonsFileUploadVersion = '1.3.1' commonsCodeVersion = '1.11' httpclientVersion = '4.5.1' jodconverterVersion = '2.2.1' poiVersion = '3.11' commonsNetVersion = '3.6' commonsLangVersion = '2.4' library = [ //juniti 用于单元测试 testImplementation : "org.junit.jupiter:junit-jupiter-api:5.7.0", testRuntimeOnly : "org.junit.jupiter:junit-jupiter-engine:5.7.0", //其他模块需要用到的依赖 fastjson : "com.alibaba:fastjson:${fastjsonVersion}", jedis : "redis.clients:jedis:${jedisVersion}", commonsFileUpload : "commons-fileupload:commons-fileupload:${commonsFileUploadVersion}", commonsCode : "commons-codec:commons-codec:${commonsCodeVersion}", httpclient : "org.apache.httpcomponents:httpclient:${httpclientVersion}", jodconverter : "com.artofsolving:jodconverter:${jodconverterVersion}", poi : "org.apache.poi:poi:${poiVersion}", poiXml : "org.apache.poi:poi-ooxml:${poiVersion}", commonsNet : "commons-net:commons-net:${commonsNetVersion}", commonsLang : "commons-lang:commons-lang:${commonsLangVersion}" ] }
(4) 新建模块model1


新建完后可以看到model1中也有一个build.gradle,这个文件是表明这个模块需要用到哪些模块

model1中的build.gradle:
plugins {
id 'java' } group 'com.mytest' version '1.0-SNAPSHOT' dependencies {
implementation library['testImplementation'] implementation library['testRuntimeOnly'] implementation library['fastjson'] implementation library['jedis'] } test {
useJUnitPlatform() }
注意:
如果你以前使用过低版本的 gradle,可能接触过 gradle 中的 compile、api来导入依赖。但在高版本中compile、api都不再推荐且被废除,所以要使用 implementation 导入。
(5) 新建模块model2
model2 中的 build.gradle:
plugins {
id 'java' } group 'com.mytest' version '1.0-SNAPSHOT' dependencies {
implementation library['testImplementation'] implementation library['testRuntimeOnly'] implementation library['fastjson'] implementation project(':model1')//引入model1模块 } test {
useJUnitPlatform() }
(6) 构建
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225608.html原文链接:https://javaforall.net
