Gradle从零开始创建SpringBoot项目

环境搭建

安装gradle

  1. 下载Gradle的安装包(可选择二进制包或者完整包
  2. 解压压缩包到安装路径, 如:
    1
    2
    3
    ~$ mkdir -p /usr/local/gradle
    ~$ cd /usr/local/gradle
    ~$ unzip ~/Downloads/gradle-6.0-bin.zip
  3. 导入环境
  • Gradlebin目录添加到PATH环境变量
    1
    2
    ~$ echo "export PATH=$GRADLE_HOME/bin:$PATH" >> ~/.bashrc # ~/.bash_profile ~/.zshrc
    ~$ source ~/.bashrc
  • 或者将 Gradle的可执行文件软连接到 /usr/local/bin
    1
    ~$ ln -s $GRADLE_HOME/bin/gradle /usr/local/bin/gradle

提示: $GRADLE_HOME指的是gradle解压后的目录, 比如 /usr/local/gradle/6.0

创建工程

使用gradle 创建初始工程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
➜  Kotlin mkdir project
➜ Kotlin cd project
➜ project gradle init
Configuration on demand is an incubating feature.

Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2

Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Swift
Enter selection (default: Java) [1..5] 4

Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Kotlin) [1..2] 2

Project name (default: project): app

Source package (default: app): com.oyoung


BUILD SUCCESSFUL in 24s
2 actionable tasks: 2 executed
➜ project

使用IntelliJ Idea打开刚刚创建的项目

在这里插入图片描述

配置工程

修改build.gradle.kts文件

  1. 简化kotlin相关的依赖导入
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dependencies {
    // Align versions of all Kotlin components
    implementation(platform("org.jetbrains.kotlin:kotlin-bom"))

    // Use the Kotlin JDK 8 standard library.
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

    // Use the Kotlin test library.
    testImplementation("org.jetbrains.kotlin:kotlin-test")

    // Use the Kotlin JUnit integration.
    testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
    }
    改为
    1
    2
    3
    4
    5
    6
    7
    8
    dependencies {
    implementation(kotlin("stdlib", "1.3.50"))
    implementation(kotlin("reflect", "1.3.50")) /// kotlin 反射机制需要的库

    /// 暂时不需要改动
    testImplementation("org.jetbrains.kotlin:kotlin-test")
    testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
    }
  2. 导入springboot 相关插件
    1
    2
    3
    4
    5
    6
    plugins {
    kotlin("jvm") version "1.3.50"
    kotlin("plugin.spring") version "1.3.50"
    id("org.springframework.boot") version "2.2.1.RELEASE"
    id("io.spring.dependency-management") version "1.0.8.RELEASE"
    }
    其中 使用 kotlin()方法包裹的, 属于kotlin模块,使用 id()方法的是第三方模块
  3. 增加 mavenCentral()仓库
    1
    2
    3
    4
    repositories {
    mavenCentral()
    jcenter()
    }
  4. 导入 "org.springframework.boot:spring-boot-starter-web"
    1
    2
    3
    4
    5
    6
    dependencies {
    /// ...
    implementation("org.springframework.boot", "spring-boot-starter-web")
    /// implementation("org.springframework.boot:spring-boot-starter-web")
    /// ...
    }

打开我们的程序入口App.kt

1
2
3
4
5
6
7
8
9
10
11
12
package com.oyoung

class App {
val greeting: String
get() {
return "Hello world."
}
}

fun main(args: Array<String>) {
println(App().greeting)
}

改成如下:

1
2
3
4
5
6
7
8
9
10
package com.oyoung /// 这里改成自己明明的包
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class App

fun main(args: Array<String>) {
runApplication<App>(*args)
}

此刻我们看到runApplication这一行有红色波浪线,鼠标移到上面提示:
错误提示
这表示我们的kotlin build的字节码的jvm版本与我们实际设定的不一致

1
2
3
group = "com.oyoung"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8

按提示增加 -jvm-target 参数

  1. 删除最下面自动生成的 application 任务
  2. 增加一个KotlinCompile任务
    1
    2
    3
    4
    5
    tasks.withType<KotlinCompile>() {
    kotlinOptions {
    jvmTarget = "1.8"
    }
    }
    建议自己敲上面的代码, 在敲代码的过程中会有一个自动导入的import 添加到文件开头
    1
    import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
    当然了, 如果IDE响应太慢没有自动import,也可以手动导入

首次尝试启动

打开定位为App.kt文件
main 函数的左侧, 显示行号的附近有一个三角形箭头, 点击, 然后会有弹出来的菜单, 之后的操作, 你懂的…
运行

此时, 如果一切正常的话, 将会以默认的8080端口号启动一个没有任何路由请求的SpringBoot应用程序, 如果需要修改为自定义的端口号, 需要在$PROJECT/src/main/resources路径下新建一个application.yml(或者application.properties)文件:

1
2
server:
port: 4000
  • 第二次启动应用时 端口号即可改为自定义的端口号

增加controller

  1. 新建一个 com.oyoung.controller包 (或者使用自己的包前缀)
  2. 新建一个 Controller类, 比如 TestController
  3. 在自定义的Controller上面添加注解 @RestController, 一般会自动导入 所需要的包, 没有自动导入的话, 可以按照提示按 Alt + Enter组合按键手动导入
  4. 添加第一个路由,比如 /test, 返回任意一个对象
  5. 重新启动程序
  6. 如果在上面的依赖中没有添加
    1
    2
    3
    4
    5
    dependencies {
    /// ...
    implementation(kotlin("reflect", "1.3.50"))
    /// ...
    }
    的话, 一般会启动失败, 至于使用什么版本, 看具体情况,我自己选择的是当前最新的稳定版
    至此一个完整的SpringBoot初始项目就创建完成了,

撒花✿✿ヽ(°▽°)ノ✿

感谢您对本站的支持.