前言

Gradle是什么:

  • Gradle提供了一个域特定语言(DSL),用于描述构建
  • 它使用 Groovy 语言,使其更容易来形容和构建
  • Gradle 中的每一个构建脚本使用UTF-8进行编码保存,并命名为 build.gradle

Gradle的作用:

  • 构建项目:通过脚本来管理项目的依赖、关系等
  • 处理任务:例如编译类、创建Jar、产生Javadoc或发布归档文件库等

一、安装与配置

安装前提:安装JDK(我的版本是1.8)

下载地址:https://gradle.org/install/(我下载的版本是4.9)

安装步骤:

  • 1、下载的是一个压缩包,解压到一个文件夹
  • 2、设置环境变量
    • 设置变量GRADLE_HOME,值为gradle的路径
    • 设置Path变量,添加%GRADLE_HOME%/bin路径

  • 3、cmd中执行gradle -v命令查看是否安装正确

Gradle配置最佳实践:

  • 1、配置本地仓库位置:添加环境变量GRADLE_USER_HOME,值为希望作为本地仓库的文件夹的路径
  • 2、开启守护进程:(我测试4.9时已经默认支持守护进程,所以不用配置)
    • 每一次进行Gradle构建,Gradle都要运行一个JVM,然后加载相关类再进行构建
    • 可以开启守护进程,让JVM不在每一次运行完成就退出,那么下次构建时就不用再创建JVM和加载类了
    • 从而提供了运行效率
    • 开启方式:在build.gradle同级目录下增加gradle.properties文件,里面添加代码org.gradle.daemon=true

二、构建一个简单的Java项目

Gradle通过脚本进行构建,脚本的默认名称是build.gradle。

当执行Gradle命令时,会默认找该文件夹下的build.gradle文件,如果找不到则提示帮助信息。

2.1、创建build.gradle文件

使用文本文档或其他方式创建一个build.gradle文件,并在里面输入代码

apply plugin: 'java'

这句代码表明应用了该项目构建使用了Java插件

Java插件默认会在src/main/java目录下查找程序文件

2.2、使用命令构建项目

使用cmd进入build.gradle所在文件夹,并运行gradle -i build命令(-i表示显示更多调试信息,可有可无)

输出类似如下,这个命令进行了如下几个操作

运行后得到以下文件

2.3、定制项目

上面的gradle文件只加入了一个Java插件就可以构建项目,是因为Gradle给定了很多默认值

可以查阅https://docs.gradle.org/current/dsl/进行了解

也可以通过gradle properties命令查看当前的默认值

通过以下写法可以增加项目设置

apply plugin: 'java'

version = 0.1
sourceCompatibility = 1.6 jar {
manifest {
attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
}
} sourceSets {
main {
java {
srcDirs = ['src']
}
}
} buildDir = 'out'
  • version:项目版本,生成的jar包名称最后会带上版本号
  • sourcecompatibility:设置Java版本编译兼容1.6
  • Main-Class:将Main-Class头添加到JAR文件代码清单中
  • srcDirs:把Java代码路径从src/main/java改到src
  • buildDir:把输出文件夹从build改成out

定制自己的项目的关键在于对潜在的属性和DSL元素的了解,尽量参考上面文档以及平时积累

2.4、配置和使用外部依赖

repositories {
mavenCentral()
} dependencies {
providedCompile 'javax.servlet:servlet-api:2.5',
'javax.servlet.jsp:jsp-api:2.1'
runtime 'javax.servlet:jstl:1.1.2',
'taglibs:standard:1.1.2'
}
  • repositories:定义仓库,表明程序依赖包应该去哪里下载;mavenCentral()是Maven仓库的一个快捷表达方式,表示去http://repol.maven.org/这个仓库去下载依赖包
  • dependencies:定义依赖,依赖通过group标识符、名称、版本号来确定

三、IDEA+Gradle实战

3.1、创建一个Gradle项目

1、IDEA中File--New--Project,并通过以下选项创建一个Gradle项目

2、

【Java架构:基础技术】一篇文章搞掂:Gradle的更多相关文章

  1. 【已转移】【Java架构:系统架构理论】一篇文章搞掂:RESTful

    一.定义 1.起源 来源:Roy Fielding的博士论文. 目的:理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构. 定义:一种实现软件通信的架构风格.设计风格, ...

  2. Java 集合详解 | 一篇文章解决Java 三大集合

    更好阅读体验:Java 集合详解 | 一篇文章搞定Java 三大集合 好看的皮囊像是一个个容器,有趣的灵魂像是容器里的数据.接下来讲解Java集合数据容器. 文章篇幅有点长,还请耐心阅读.如只是为了解 ...

  3. N个任务掌握java系列之统计一篇文章中单词出现的次数

    问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...

  4. 【已转移】【Java架构:基础技术】一篇文章搞掂:Spring

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文是对<SPRING实战第4版>的总结,大家也可以去仔细研读该书 [------------------------ ...

  5. 【已转移】【Java架构:基础技术】一篇文章搞掂:Java 8

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 一.Java的历史与演变 目的:为完全了解Java,需要理解Java的诞生原因.成型动力以及他继承的思想. 计算机语言的创新与发展 ...

  6. 【Java架构:基础技术】一篇文章搞掂:MyBatis-Plus

    前言 Mybatis:一个流行的半自动ORM框架. Mybatis-Plus:一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发.提高效率而生. 本文使用的版本:myb ...

  7. 【Java架构:基础技术】一篇文章搞掂:Spring Boot 官方文档解读

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文内容大部分是翻译和总结官方文档,可以到https://docs.spring.io/spring-boot/docs查看(此地 ...

  8. 【Java架构:基础技术】一篇文章搞掂:Spring Boot

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文是对<Spring Boot 实战第4版>的总结,大家也可以去仔细研读该书 注意,书中使用的Spring Boot ...

  9. 【Java架构:基础技术】一篇文章搞掂:MyBatis

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文主要总结于刘增辉的<MyBatisc从入门到精通>一书,有兴趣的朋友可以自行研读 建议仔细研读官方文档: http ...

随机推荐

  1. Mac查询电脑mac地址

    方法一: 按住键盘上的“Windows+R”,然后在弹出的运行框中输入“CMD”或依次点击 开始>所有程序>附件>命令提示符 在弹出的命令提示符窗口中输入“ipconfig /all ...

  2. linux系统下jdk安装配置

    1.有jdk包(linux版) 2.放到linux系统下 3.建议在usr下新建jdk目录之后将jdk文件放到该目录下 3.配置系统信息   /etc/profile 需要配置的信息如下:#set j ...

  3. LOJ 2979 「THUSCH 2017」换桌——多路增广费用流

    题目:https://loj.ac/problem/2979 原来的思路: 优化连边.一看就是同一个桌子相邻座位之间连边.相邻桌子对应座位之间连边. 每个座位向它所属的桌子连边.然后每个人建一个点,向 ...

  4. window安装nexus和配置

    原文 http://www.cnblogs.com/fxmemory/p/7133672.html 一. 认识mav仓库 1.1 maven仓库的作用   回想之前不用maven的时候,我们用ecli ...

  5. php使用curl实现get和post请求的方法,数据传输urldecode和json

    PHP支持CURL库,利用URL语法规定来传输文件和数据的工具,支持很多协议,包括HTTP.FTP.TELNET等. 优点:是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS.CURL ...

  6. 【项目管理和构建】——Maven简介(一)

    在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你 ...

  7. jenkins构建后操作archive the artfacts的用法

    参考: https://blog.csdn.net/liqiangeastsun/article/details/79062806 Jenkins构建完成存档 Archive the artifact ...

  8. 测开之路二十六:Flask基础之最小web程序

    Flask中文文档:http://docs.jinkan.org/docs/flask/ 安装Flask库 选端口号的一种方法(避免和别人选的端口冲突,小于1024的时候重新选) 最小web程序 用1 ...

  9. Javascript在ajax提交过程中页面显示加载中,请等待效果,并在提交过程中限制确定按钮防止多次提交,提交完成后,解除提交限制

    加载中,请等待div: <div id="load" class="center-in-center" style="display:none; ...

  10. spring boot 尚桂谷学习笔记09 数据访问

    springboot 与数据库访问 jdbc, mybatis, spring data jpa,  1.jdbc原生访问 新建项目 使用 springboot 快速构建工具 选中 web 组件 sq ...