安装
安装SDKMAN
Gradle在安装之前可以选择很多安装方式,这里选择SDKMAN。其他方式见安装说明。
linux安装SDKMAN,分别执行:
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
安装结果测试。
输入:
$ sdk version
成功安装会输出:
==== BROADCAST =================================================================
* 02/07/18: Kscript 2.4.5 released on SDKMAN!
* 28/06/18: Micronaut 1.0.0.M2 released on SDKMAN!
* 27/06/18: Infrastructor 0.2.0 rolling out. With stronger encryption and new task progress UI.
================================================================================
SDKMAN 5.6.4+305
安装Gradle
Gradle需要JDK7以上才能运行,请先使用 java -version 命令确定环境。
使用SDKMAN安装Gradle:
$ sdk install gradle 4.8.1
安装完成后输入gradle -v检查安装结果:
$ gradle -v
------------------------------------------------------------
Gradle 4.8.1
------------------------------------------------------------
Gradle基础要点知识
- 一个Gradle文件(例如build.gradle)视为一个project。在Gradle的项目组织中就2个层级——Project和Task。
- 在Gradle中有3个重要的概念Project、Plug、Task。三者的关系:Project就是一个容器,里面可以放置各种类型的Task,Plug是一堆Task的集合。
- Gradle中所有的功能都是以一个Task实现的,包括Jar包的依赖。
- Properties:Project和Task都有自己的属性(Properties)。Project级别的属性可以设置,也可以通过外部传入。
一个配置案例
plugins {
id 'java'
id 'application'
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/main/resources'
}
}
}
mainClassName = 'App'
class GroupAndVersion {
String group
String version
}
ext {
spring = new GroupAndVersion(group:'org.springframework', version:'5.0.7.RELEASE')
}
dependencies {
compile 'com.google.guava:guava:23.0'
compile group: spring.group, name: 'spring-core', version: spring.version
compile group: spring.group, name: 'spring-beans', version: spring.version
compile group: spring.group, name: 'spring-context', version: spring.version
testCompile 'junit:junit:4.12'
}
repositories {
jcenter()
}
task show << {
println configurations.compile.asPath
}
配置文件对应的工程结构:
project
--bin IDE动态编译的文件(Eclipse)
----main
----test
--build 运行gradle build命令生成的文件
---- classes Java 工程目录对应的.class文件
---- distributions 打包之后的压缩包
---- lib 打包之后的jar
---- report 测试报告
---- scripts 打包之后的启动脚本
---- test-result 测试结果
---- tmp 临时文件,比如会在打包jar之前临时存放MANIFEST.MF
--gradle gradle执行相关的文件,比如gradle-wrapper
--src 源码和资源
----main
----text
--build.gradle
--gradlew
--settings.gradle
设置仓库源
默认情况下Gradle会使用Maven或Ivy的中央仓库,在当前用户的${home}.gradle文件下新建一个init.gradle文件,然后写入:
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
这样链接的仓库会执行国内的阿里镜像。
快速初始化项目
Gradle提供了初始化各自类型项目的命令:
$ gradle init --type <name>