官网给Gradle的一些介绍:Gradle是一个专注于灵活性和性能的开源构建自动化工具。Gradle构建脚本是使用Groovy或Kotlin DSL编写的。
DSL (Domain Specific Language):领域专用语言
官网:https://docs.gradle.org/current/dsl/
Gradle的实质是配置脚本,执行一种类型的配置脚本时就会创建一个关联的对象,譬如执行Build script脚本就会创建一个Project对象,这个对象其实就是Gradle的代理对象。下面给出来各种类型Gradle对应的对象类型:
Gradle抛弃了Maven的基于XML的繁琐配置,Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数。
compile 'org.mybatis:mybatis:3.4.5'
compile('org.mybatis:mybatis:3.4.5')
compile group: 'org.mybatis', name: 'mybatis', version: '3.4.5'
compile (group: 'org.mybatis', name: 'mybatis', version: '3.4.5')
以上4中写法,对于gradle来说都是正确的,如果多人开发项目,会造成代码风格不统一的问题。
地址:https://gradle.org/releases/
将下载好的安装包解压至固定目录,比如:C:\java\gradle-4.10.1
GRADLE_HOME :C:\java\gradle-4.10.1
path中添加 :%GRADLE_HOME%\bin
ctrl+R==>cmd==>gradle - v 就应该显示出对应gradle安装版本
使用mavenLocal() 时Gradle默认会按以下顺序去查找本地的maven仓库:USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml(环境变量要加入M2_HOME)
repositories {
mavenLocal()
}
group 'com.payne.study'
version = '0.0.1-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
buildscript {
ext {
//定义一个变量,统一规定springboot的版本
springBootVersion = '2.0.5.RELEASE'
springCloudVersion = 'Finchley.SR1'
}
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
mavenCentral()
}
dependencies {//用来打包
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
jcenter()
mavenCentral()
}
//指定编码格式
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
}
//设定当前模块项目中的配置
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
//spring boot 插件
apply plugin: 'org.springframework.boot'
//A Gradle plugin that provides Maven-like dependency management functionality
apply plugin: 'io.spring.dependency-management'
dependencies {
compile ('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
dependencyManagement {
imports {
//spring bom helps us to declare dependencies without specifying version numbers.
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
jar {
manifest.attributes provider: 'gradle'
}
}
options.encoding = “UTF-8”:指定编码格式,这是一种方式。也可以在IDEA中,需要打开File->Other Settings->Default Settings->Gradle,在Gradle Vm Options中设置-Dfile.encoding=utf-8
mavenCentral: maven中央仓库(http://repo1.maven.org/maven2/)是由Sonatype公司提供的服务,它是Apache Maven、SBT和其他构建系统的默认仓库,并能很容易被Apache Ant/Ivy、Gradle和其他工具所使用。开源组织例如Apache软件基金会、Eclipse基金会、JBoss和很多个人开源项目都将构件发布到中央仓库
jcenter:( https://jcenter.bintray.com )是由JFrog公司提供的Bintray中的Java仓库。它是当前世界上最大的Java和Android开源软件构件仓库。 所有内容都通过内容分发网络(CDN)使用加密https连接获取。JCenter是Goovy Grape内的默认仓库,Gradle内建支持(jcenter()仓库),非常易于在(可能除了Maven之外的)其他构建工具内进行配置。
plugins: https://plugins.gradle.org/ 可查询具体plugin插件作用
gradle注释: gradle支持 //行注释 和 /*块注释*/
subproject: 作用:配置这个项目的子项目。这个方法对这个项目的每个子项目执行给定的闭包。目标项目作为闭包的委托传递给闭包。更多详情可以看官方文档: https://docs.gradle.org/current/dsl/org.gradle.api.Project.html
声明实例化和配置要参与构建的项目实例的层次结构所需的配置。
可以使用include(java.lang.String[])或者多个include(java.lang.String)方法向构建添加项目。
rootProject.name = 'spring-cloud-gradle'
include 'study-registry-server'
include 'study-euraka-client'
build.gradle:
dependencies {
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
}
build.gradle:
dependencies {
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
}
这样简单的Euraka Server和Euraka Client项目就使用gradle模式搭建好了。
gradle clean build