用Gradle开始一个Spring Boot项目

环境

Windows10 64位系统
JDK 11版本

从 Spring Initializr 下载模板

首先,从下面的页面下载Spring项目的模板。
请像图片上那样,选中Gradle而不是Maven。

image.png

下载并解压后的目录将如下所示。


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2020/04/29     23:48                gradle
d-----        2020/04/29     23:48                src
-a----        2020/04/29     23:48            341 .gitignore
-a----        2020/04/29     23:48            509 build.gradle
-a----        2020/04/29     23:48           5764 gradlew
-a----        2020/04/29     23:48           3056 gradlew.bat
-a----        2020/04/29     23:48            469 HELP.md
-a----        2020/04/29     23:48             26 settings.gradle

Gradle 相关的目录和文件

该项目中包含以下与Gradle相关的文件和目录。

.gradle … Gradleが生成するキャッシュが保存されているディレクトリ

gradle … Gradleラッパーの設定ファイル / Jarファイルが配置されているディレクトリ

build.gradle … ビルドスクリプト、大体これを触ることになる

gradlew … Gradleラッパーのシェルスクリプト

gradlew.bat … Gradleラッパーのバッチファイル

settings.gradle … マルチプロジェクト時のビルドに必要な設定ファイル

Gradle包装器 (Grahye qì)

如果使用Spring Initializr,则项目中已经包含了Gradle Wrapper。
因此,开发者无需手动安装Gradle本身。
当使用Intellij等IDE打开下载的项目时,会自动安装指定版本的Gradle。
通过这种分发方式,可以统一团队使用的Gradle版本。

将IntelliJ集成

IntelliJ内置的Gradle插件已经默认安装,不需要添加IDE插件。
在屏幕右边有Gradle选项卡,可以在IntelliJ内完成对Gradle的操作。
下方显示了任务列表,可以通过大象图标按钮执行各个任务。

image.png

构建脚本


plugins {
  id 'org.springframework.boot' version '2.2.6.RELEASE'
  id 'io.spring.dependency-management' version '1.0.9.RELEASE'
  id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
  mavenCentral()
}
dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}
test {
  useJUnitPlatform()
}

插件 (chā


plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

查看 build.gradle,你可以看到插件已经从开始就被引入了。
Gradle 的插件是预先定义了常用开发任务的扩展。
例如,java 插件会提前准备好构建、测试、生成 Javadoc 等任务。
在下面的页面上,提供了各种插件供公开使用,当然也可以自己制作插件。

存储库

repositories {
  mavenCentral()
}

Gradle会从外部和内部存储库获取库的依赖关系。
在上面的例子中,指定了mavenCentral,所以在添加依赖关系时会从这里获取。
除此之外,还有jCenter和Google存储库等,可以指定它们。
还可以设置存储库的优先级,如果A没有,可以从B获取。
还可以指定使用Nexus等自己搭建的私有存储库。

依存关系

默认情况下,如下所示。


dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}

在编译应用程序源代码时,implementation 是必需的依赖关系。testImplementation 则是为了编译和执行测试源代码所必需的依赖关系。还可以设置其他各种配置的依赖关系。通过在 build.gradle 中添加依赖关系,IntelliJ 可以检测到更改并从仓库获取依赖关系。

考試

test {
  useJUnitPlatform()
}

最初的时候,状态如以上所示,执行测试会运行所有的测试。
在useJUnitPlatform块内,可以使用JUnit的功能来进行测试的详细控制。
例如,可以包含特定标记的测试方法,也可以排除某些测试方法。

广告
将在 10 秒后关闭
bannerAds