本文共 3967 字,大约阅读时间需要 13 分钟。
gradle
Gradle
的安装包(可选择或者~$ mkdir -p /usr/local/gradle~$ cd /usr/local/gradle~$ unzip ~/Downloads/gradle-6.0-bin.zip
Gradle
的 bin
目录添加到PATH
环境变量~$ echo "export PATH=$GRADLE_HOME/bin:$PATH" >> ~/.bashrc # ~/.bash_profile ~/.zshrc~$ source ~/.bashrc
Gradle
的可执行文件软连接到 /usr/loca/bin
~$ ln -s $GRADLE_HOME/bin/gradle /usr/local/bin/gradle
提示: $GRADLE_HOME
指的是gradle
解压后的目录, 比如 /usr/local/gradle/6.0
gradle
创建初始工程➜ Kotlin mkdir project➜ Kotlin cd project➜ project gradle initConfiguration on demand is an incubating feature.Select type of project to generate: 1: basic 2: application 3: library 4: Gradle pluginEnter selection (default: basic) [1..4] 2Select implementation language: 1: C++ 2: Groovy 3: Java 4: Kotlin 5: SwiftEnter selection (default: Java) [1..5] 4Select build script DSL: 1: Groovy 2: KotlinEnter selection (default: Kotlin) [1..2] 2Project name (default: project): appSource package (default: app): com.oyoungBUILD SUCCESSFUL in 24s2 actionable tasks: 2 executed➜ project
IntelliJ Idea
打开刚刚创建的项目build.gradle.kts
文件kotlin
相关的依赖导入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")}
改为
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")}
springboot
相关插件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()
方法的是第三方模块
mavenCentral()
仓库 repositories { mavenCentral() jcenter()}
"org.springframework.boot:spring-boot-starter-web"
dependencies { /// ... implementation("org.springframework.boot", "spring-boot-starter-web") /// implementation("org.springframework.boot:spring-boot-starter-web") /// ...}
App.kt
package com.oyoungclass App { val greeting: String get() { return "Hello world." }}fun main(args: Array) { println(App().greeting)}
改成如下:
package com.oyoung /// 这里改成自己明明的包import org.springframework.boot.autoconfigure.SpringBootApplicationimport org.springframework.boot.runApplication@SpringBootApplicationclass Appfun main(args: Array) { runApplication (*args)}
此刻我们看到runApplication
这一行有红色波浪线,鼠标移到上面提示:
group = "com.oyoung"version = "0.0.1-SNAPSHOT"java.sourceCompatibility = JavaVersion.VERSION_1_8
-jvm-target
参数application
任务KotlinCompile
任务tasks.withType() { kotlinOptions { jvmTarget = "1.8" }}
建议自己敲上面的代码, 在敲代码的过程中会有一个自动导入的import 添加到文件开头
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
当然了, 如果IDE响应太慢没有自动import,也可以手动导入
打开定位为App.kt
文件
main
函数的左侧, 显示行号的附近有一个三角形
箭头, 点击, 然后会有弹出来的菜单, 之后的操作, 你懂的… 此时, 如果一切正常的话, 将会以默认的8080端口号启动一个没有任何路由请求的SpringBoot应用程序, 如果需要修改为自定义的端口号, 需要在$PROJECT/src/main/resources
路径下新建一个application.yml
(或者application.properties
)文件:
server: port: 4000
com.oyoung.controller
包 (或者使用自己的包前缀)Controller
类, 比如 TestController
@RestController
, 一般会自动导入 所需要的包, 没有自动导入的话, 可以按照提示按 Alt + Enter
组合按键手动导入dependencies { /// ... implementation(kotlin("reflect", "1.3.50")) /// ...}
的话, 一般会启动失败, 至于使用什么版本, 看具体情况,我自己选择的是当前最新的稳定版
至此一个完整的SpringBoot初始项目就创建完成了,转载地址:http://uyagj.baihongyu.com/