我稍微查了一下Gradle并阅读了通过Spring Initializr生成的build.gradle
使用Spring Boot和MySQL来实现一个简单的Web REST API服务器- Qiita
概述
我想要阅读由Spring Initializr自动生成的build.gradle文件。
为了阅读该文件,我稍微查阅了一下Gradle。
参考文献
Gradle构建工具
Gradle用户指南
Gradle是什么?
首章 引言
Gradle是Java (JVM) 环境中的构建系统。
使用替代前的Maven。
负责导入依赖库、编译、生成jar文件以及执行测试等各种任务。
安装
如果您正在使用IntelliJ,它将与其一同安装。
您也可以通过Homebrew进行安装。
在我的环境中,它就在这里。
% ~/.gradle/wrapper/dists/gradle-4.5.1-bin/a5vbgfvpwtoqz8v2cdivxz28k/gradle-4.5.1/bin/gradle -v
------------------------------------------------------------
Gradle 4.5.1
------------------------------------------------------------
Build time: 2018-02-05 13:22:49 UTC
Revision: 37007e1c012001ff09973e0bd095139239ecd3b3
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_162 (Oracle Corporation 25.162-b12)
OS: Mac OS X 10.13.3 x86_64
构建.gradle
基本上,要编辑这个文件。就像是pom.xml一样。
这是由项目创建自动生成的一部分。
buildscript {
ext {
springBootVersion = '2.0.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('mysql:mysql-connector-java')
compileOnly('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
逐一查看从上到下写着什么。
构建脚本
用于解决依存关系的gradle.build文件本身的依赖解析代码块。
似乎Spring Boot生成的Gradle项目会使用Spring Boot的Gradle插件。
扩展
定义变量的地方。
仓库
如果指定依存库的存储库。
正在指定Maven的中央存储库。
指定URL的方法如下。
repositories {
maven {
url 'https://repo.spring.io/libs-snapshot'
}
}
第51章 管理依存关系
依赖
使用Spring Boot的Gradle插件,指定了图书馆。
申请
声明插件的位置。
这两个插件都依赖于Spring Boot。
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
org.springframework.boot – SpringBoot
这个被添加了。
Application tasks
-----------------
bootRun - Runs this project as a Spring Boot application.
执行应用程序启动的任务已经完成。现在可以启动Spring Boot应用程序了。
依赖管理(io.spring.dependency-management)
这家伙看起来很厉害。
这个插件可以重现Maven的BOM(物料清单)机制。
※物料清单 (wù
每个库都可以定义其自身的依赖关系机制。
总的来说,如果有想要使用的库,只需编写该库及其依赖关系清单,即可使用。
很遗憾,Gradle中没有这个机制。
使用这个插件就可以实现。
然而,这次的build.gradle文件中并未使用BOM。
在实际使用时,可以使用以下类似的代码块。
以spring-cloud-stream为例。
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-stream-dependencies:Fishtown.BUILD-SNAPSHOT'
}
}
成果物相关
版本之类的将在这里进行操作
下面的是jdk的版本
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
代码仓库
与 buildscript 相同的那个
依赖
写入依赖库。
在开头被称为“配置”的。
第23章,Java插件。
书写方式有很多其他种类。
dependencies {
runtime group: 'org.springframework', name: 'spring-core', version: '2.5'
runtime 'org.springframework:spring-core:2.5',
'org.springframework:spring-aop:2.5'
runtime(
[group: 'org.springframework', name: 'spring-core', version: '2.5'],
[group: 'org.springframework', name: 'spring-aop', version: '2.5']
)
runtime('org.hibernate:hibernate:3.0.5') {
transitive = true
}
runtime group: 'org.hibernate', name: 'hibernate', version: '3.0.5', transitive: true
runtime(group: 'org.hibernate', name: 'hibernate', version: '3.0.5') {
transitive = true
}
}
赠品
你好世界
这个家伙毕竟只是个脚本而已。
% cat build.gradle
task hello {
doLast {
println 'Hello world!'
}
}
% gradle hello
> Task :hello
Hello world!
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed