首页 > 编程语言 >5分钟了解Gradle并构建java项目

5分钟了解Gradle并构建java项目

时间:2022-12-15 22:34:05浏览次数:72  
标签:java gradle 编译 version 构建 org Gradle id


5分钟了解Gradle并构建java项目

一、Gradle是什么及优势

Gradle就是跟Maven类似的依赖加载和项目构建工具。他有如下特点

  • 配置相关依赖代码量少,不会像maven一样xml过多
  • 打包编译测试发布都有,而且使用起来方便
  • 利用自定义的任务可以完成自己想要的功能

另外还有一点,他的速度很快

gradle使用构建缓存、守护进程等方式提高编译速度。结果就是gradle的编译速度要远超maven,平均编译速度比Maven快好几倍,而且项目越大,这个差距就越明显。


5分钟了解Gradle并构建java项目_开发语言

二、安装Gradle

1.下载地址​​http://services.gradle.org/distributions/ ​​ ,下载你所需要对应的版本,我这里下载的是gradle-4.7-bin.zip。下载后解压到你想要的目录即可,然后设置环境变量:

2.GRADLE_HOME

5分钟了解Gradle并构建java项目_maven_02

3.并且在Path中也添加**%GRADLE_HOME%\bin**的环境变量

5分钟了解Gradle并构建java项目_java_03

4.然后win+R,输入cmd,并在控制台输入gradle -v检查是否成功

5分钟了解Gradle并构建java项目_maven_04

三、idea创建Gradle工程

1、打开idea创建新项目


5分钟了解Gradle并构建java项目_开发语言_05

  1. New Project 右侧面板中填写项目名称
  2. Language 中选择Java
  3. Build system 选择Gradle
  4. JDK版本 选择1.8
2、填写完项目信息后,点击Create

5分钟了解Gradle并构建java项目_开发语言_06

3.打包项目

5分钟了解Gradle并构建java项目_Gradle_07

四、文件说明

gradle工程中有2个主要的问题件:build.gradlesettings.gradle

**1.**settings.gradle主要是用来管理多项目的也就是微服务时使用,里面包含了项目的name

**2.**build.gradle和maven的pom.xml作用基本是一样的,用于定义依赖这些。比如:

a.定义别名

ext {
set('springBootVersion', "2.3.12.RELEASE")
}

b.定义依赖:

dependencies {
implementation group: 'com.tcl.iot.cloud.commons', name: 'iot-commons-all', version: "${iotCommonsVersion}"
}

这里的implementation,默认的scope。implementation的作用域会让依赖在编译和运行时均包含在内,但是不会暴露在类库使用者的编译时。举例,如果我们的类库包含了gson,那么其他人使用我们的类库时,编译时不会出现gson的依赖。


c.加载插件:

plugins {
id 'org.springframework.boot' version '2.3.12.RELEASE'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'jacoco'
}

核心插件可以不用版本号,其他不用

4.可以和maven对比一下

plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: "${commonsLang3Version}"
}

test {
useJUnitPlatform()
}

标签:java,gradle,编译,version,构建,org,Gradle,id
From: https://blog.51cto.com/u_12847493/5946561

相关文章

  • Java-数组4-笔记
    1.数组的作用就是一个容器,用于在程序中存储一批同种类型的数据2.数组的定义静态初始化数组格式1数据类型[]数组名称=new数据类型[]{元素1,元素2,元素3,....}格式2数据类型[......
  • Java学习-数据类型
    Java为强类型语言,所有变量都需要先定义,再使用。Java数据类型分类Java数据类型分为两个大类基本类型(PrimitiveType)基本类型分为数值类型和布尔(Boolean)类型数值类......
  • 记录一下:Java8和Java11对sun.misc.BASE64Encoder的替换
    JDK8之后的版本中针对sun.misc.BASE64Encoder使用方法进行了修改升级,JDK8中:BASE64Decoderdecoder=newBASE64Decoder();byte[]bytes=decoder.decodeBuffer(str)......
  • Java 多个String(字符串)判断是否null(空值)
    Java多个String(字符串)判断是否null(空值)  示例:Strings=null;if(str1!=null){s=str1;}elseif(str2!=null){s=str2;}elseif(str3......
  • 17 Java内存模型与线程_Java与线程
    目录1线程的实现1.1内核线程实现1.2用户线程实现1.3用户线程加轻量级进程混合实现2Java线程实现3Java线程调度3.1协同式线程调度3.2抢占式线程调度3.3Java线程优......
  • TypeError: forEach is not a function in JavaScript
     以下代码: constparent=this.el.parentElementconsole.log(parent.children)parent.children.forEach(child=>{console.log(child)}) 运行后出现以下错......
  • 14个非常棒的JavaScript游戏开发框架推荐
    14个非常棒的JavaScript游戏开发框架推荐随着JavaScript结合​​HTML5​​​开发越来越受欢迎,很多浏览器支持的新功能正被用户使用,与此同时,许多新的​​游戏​​​正在使......
  • Java 多线程编程
      ava给多线程编程提供了内置的支持。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的......
  • Java 异常处理
    Java流(Stream)、文件(File)和IOJava.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io包中的流支持很多种格式,比如:基本类型、......
  • Java同步器之Condition源码分析
    一、概述条件锁,就是指在获取锁之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种锁。比如,在阻塞队列中,当队列中没有元素的时候是无......