Gradle快速安装及入门
作者:u010950924 发布时间:2021-11-25 09:33:28
1、什么是Gradle
Gradle是一种结合了Ant和Maven两者优势的下一代构建工具,既有Ant构建灵活性的优点,也保留Maven约定优于配置的思想,在灵活构建和约定构建之间达到了很好的平衡。
2、安装Gradle
(1)Gradle属于解压配置即可使用的软件
下载解压gradle-4.1-all.zip,例如解压到:D:/ gradle-4.1
(2)window中设置gradle环境变量:
GRADLE_HOME D:/ gradle-4.1
path D:/ gradle-4.1/bin(或者:%GRADLE_HOME%\bin)
(3)开始->运行->cmd,输入如下命令:gradle -v
3、Gradle构建脚本
每一gradle构建脚本都包含三个基本构建块:project、task和property。每一个构建中至少包含一个project,进而包含一个或多个task(project和task可以分别理解为Ant构建工具中的<project>和<target>标签)。project和task暴露的属性可以用来控制构建,project本身自带很多task并且和通过引入新的插件来引入新的task,task中包含各种构建方法来执行项目构建,例如:clean、build等常见的构建方法。
(1)、创建一个空白的build.gradle构建脚本
项目目录结构(假如其中demo为D:\demo):
demo
|--build.gradle(D:\demo\build.gradle)
执行如下命令:
D:\demo>gradle tasks
执行结果输出:
(2)、创建一个包含有java plugin的构建脚本
项目目录结构(假如其中demo为D:\demo):
demo
|--build.gradle(D:\demo\build.gradle)
build.gradle 构建脚本内容:
apply plugin: 'java'
执行如下命令:
D:\demo>gradle tasks
执行结果输出(部分):
总结:对比上面两 个构建脚本gradle tasks 命令输出的结果,加了apply plugin: 'java' 插件的构建脚本要多出了 Build tasks 等任务,从第二个 Build tasks 任务中能够看到,gradle 构建的常用命令 build、clean等,由此可以知道通过引入插件,就可以增加相应的构建功能。
4、Gradle案例实战
(1)、基于约定由于配置构建项目
基于约定的项目目录结构图(和maven默认目录结构一致):
Gradle采用了Maven约定优于配置的思想,只要按照一定的项目目录结构,构建插件将能都自动找到需要构建的文件进行项目构建,构建如此的简单。下面是一个标准的项目目录结构
项目目录结构(假如其中demo为D:\demo):
demo
|--src
|----main
|------java
|--------com
|-----------hello
|--------------Hello.java(D:\demo\src\main\java\com\hello\Hello.java)
|------resources
|----test
|------java
|------resources
|--build.gradle(D:\demo\build.gradle)
Hello.java 内容(只是一个简单的java类,自己可以任意写)
public class Hello{
public static void main(String[] args){
System.out.println("hello ant");
}
}
build.gradle 内容(只需要引入java 插件)
apply plugin: 'java'
进入D:\demo目录在命令行执行 gradle clean build 命令后的目录结构:
生成了标准的build输出目录
demo
|--build
|----classes
|------java
|--------main
|----------com
|------------hello
|---------------Hello.class(D:\demo\build\classes\java\main\com\hello\Hello.class)
|----libs
|-------Hello.jar(D:\demo\build\libs\Hello.jar)
|--src
|----main
|------java
|--------com
|-----------hello
|--------------Hello.java(D:\demo\src\main\java\com\hello\Hello.java)
|------resources
|----test
|------java
|------resources
|--build.gradle(D:\demo\build.gradle)
(2)、灵活定制构建项目
当构建历史遗留项目,由于项目目录结构的高度自由,gradle可以通过简单的配置即可完成项目构建
下面是一个非标准的项目目录结构(Hello.java并未位于标准的目录中):
项目目录结构(假如其中demo为D:\demo):
demo
|--src
|------com
|---------hello
|--------------Hello.java(D:\demo\src\com\hello\Hello.java)
|--build.gradle(D:\demo\build.gradle)
build.gradle 内容(只需要简单的指定源文件目录和编译输出目录,即可定制构建)
apply plugin: 'java'
sourceSets{
main{
java {
srcDirs = ['src'] //指定了java源文件目录为src而不是默认的src/main/java
}
}
}
buildDir = 'out' //指定输出目录为out而不是默认的build
进入D:\demo目录在命令行执行 gradle clean build 命令后的目录结构:
输出目录名称变成了out,但是out中的编译生成文件目录等都按照了标准生成
demo
|--out
|----classes
|------java
|--------main
|----------com
|------------hello
|---------------Hello.class(D:\demo\out\classes\java\main\com\hello\Hello.class)
|----libs
|-------Hello.jar(D:\demo\out\libs\Hello.jar)
|--src
|------com
|---------hello
|--------------Hello.java(D:\demo\src\com\hello\Hello.java)
|--build.gradle(D:\demo\build.gradle)
通过上面两个简单的java项目(基于约定由于配置构建项目 和 灵活定制构建项目)构建能够很明了的提现gradle基于约定构建的简单快速和制定构建的灵活
5、Gradle优缺点
优点:基本结合了以往项目构建工具(Ant和Maven)的所有优点,是构建工具的首选
缺点:相对较高的理解学习成本
6、Gradle的特性
Gradle使用Groovy作为脚本语言的构建工具,而Groovy是基于JVM的动态语言,它对Java有着先天的兼容性,你甚至可以在构建脚本中编写Java程序。
Gradle不像Ant和Maven那样使用xml编写脚本,它使用的是Groovy,这意味着你在编写脚本的时候更像是在写程序,而不是编写充满尖括号又不好阅读xml文件。
Gradle像Maven一样遵循约定优于配置的原则,也就是说你的项目只要按照标准约定搭建起来,你只需要做简单的配置就可以构建你的项目了。
Gradle支持现有的Maven仓库,所以你可以很方面地利用Maven上的所有库。
Gradle支持依赖传递,也就是说当A库依赖B库的时候,你只需要引用A库就可以了,Gradle会自动帮你依赖B库。
来源:https://blog.csdn.net/u010950924/article/details/83035450
猜你喜欢
- 百度百科说法:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务
- 本文作者:Spring_ZYL文章来源:https://blog.csdn.net/gozhuyinglong版权声明:本文版权归作者所有,
- 第一次进入应用的时候,都会有一个引导页面,引导页面的实现起来也很简单,实现的方式也有很多,下面是自己写的一个引导页面的效果,大致的实现思路为
- 本文实例总结了MFC程序设计常用技巧。分享给大家供大家参考。具体如下:1.属性页的添加:创建对话框的类,该类要从CpropertyPage继
- 什么是注解在早期的工作的时候 ,自定义注解写的比较多,可大多都只是因为 这样看起来 不会存在一堆代码耦合在一起的情况,所以使用了自定义注解,
- Spring Cloud Gateway(以下简称 SCG)做为网关服务,是其他各服务对外中转站,通过 SCG 进行请求转发。在请求到达真正
- 1: .net framework 由两个部分组成:CLR 和 FCL。2:在CLR中,所有错误都是通过异常来报告的。3:智能感知功能主要是
- 本文实例讲述了Java使用Jdbc连接Oracle执行简单查询操作。分享给大家供大家参考,具体如下:Java Jdbc 连接 Oracle
- 编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。在软件开发系统中,**“方法的请求者
- 正则: “.”和"\""."点儿,在正则表达式中表示任意一个字符。"\"在正则表
- 一:hibernate-validator 基础1. 简介:通过使用注解Annotations 给类或者类的属性加上约束(constrain
- 最近一段时间生产环境频繁出问题,每次都会生成一个hs_err_pid*.log文件,因为工作内容的原因,在此之前并没有了解过相关内容,趁此机
- 一、准备工作mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直
- 上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格
- Spark_SQL的UDF使用用户自定义函数,也叫UDF,可以让我们使用Python/Java/Scala注册自定义函数,并在SQL中调用。
- 前言上一篇我们介绍了使用 sqflite 这个数据库工具在 Flutter 的应用中建立本地数据库的实例应用。了解过数据库的同学应该会知道,
- java 避免出现NullPointerException(空指针)的方法总结Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出
- 前言博主上个礼拜,已经实现了quarkus的native image应用的上线,经过两天的监控下来,一切运行指标良好,就是内存升到了100M
- 反射对效率有影响 慎用!!!1.对象结构public class BusinessDept {private String yea
- 本文实例为大家分享了Java实现考试系统的具体代码,供大家参考,具体内容如下说明这里的考试系统是指由学生,老师以及考试机构成的,学生通过用户