基本概念
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言C 、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。 Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。来源:(百度百科)
下载
gradle安装包下载地址,我下载的是7.0.1完整版, 解压到 “E:developergradle-7.0.1-all”
配置环境变量
打开环境配置,新建系统环境“GRADLE_HOME”,值为E:developergradle-7.0.1-allgradle-7.0.1,找到path变量,后面添加%GRADLE_HOME%bin
打开cmd,输入gradle -v 出现如下信息表示gradle配置成功
idea配置
在E盘新建文件.gradle,做为gradle下载的jar包仓库主目录,默认在C:UsersAdministrator.gradle. 打开file->setting->Build,Execution,Deployment->Gradle,修改如下:
Gradle home指定了gradle文件目录 Service directory path指定了gradle工作主目录
gradle仓库配置
代码语言:javascript复制group 'com.zhan'
version '1.0-SNAPSHOT'
apply plugin:'java'
apply plugin:'war'
sourceCompatibility = 1.8
/**
* 指定所使用的仓库,mavenCentral()标识号使用中央仓库。
* 此刻项目中所需要的jar包都会默认从中央仓库下载到本地指定目录
* mavenLocal()
* mavenCentral()
* 以上配置表示先从本地仓库寻找依赖,如果没有再从中央仓库下载
* mavenCentral()
* 如果只配置中央仓库,表示直接从中央仓库下载。但是如果指定下
* 载的位置已经有了,就不会再次下载
*/
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}
mavenCentral()
jcenter()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' } //转换pdf使用
}
/*gradle工程所有的jar包的坐标都在dependencies属性内放置
* 每一个jar包的坐标都是由三个基本元素组成
* group,name,version
* testCompile表示该jar包在测试的时候起作用
* 我们在gradle里面添加坐标的时候都要带上jar包的作用域
* */
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework', name: 'spring-context', version: '5.0.6.RELEASE'
compile group: 'org.springframework', name: 'spring-web', version: '5.0.6.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.6.RELEASE'
compile group: 'org.springframework', name: 'spring-test', version: '5.0.6.RELEASE'
compile group: 'org.springframework.boot',name: 'spring-boot-starter-security',version: '2.0.3.RELEASE'
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version:'3.1.0'
providedCompile group: 'javax.servlet', name: 'jsp-api', version: '2.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8'
compile group: 'com.alibaba',name: 'fastjson', version: '1.2.58'
}
构建命令
清理命令
- gradle clean
构建打包命令
- gradle clean build