VSCode、Kotlin、Spring Boot、GradleでWEB API環境を構築

こんにちは、きむら @bokukimura です。

少し前から、サーバサイドKotlinでwebスクレイピングをやるために、VSCode、Kotlin、Spring Boot、mavenでwebアプリケーション開発の環境構築をしていましたが、
どうやってもmavenのエラーが解消できませんでした

そこで、Gradleに切り替えて再構築したところ、引っかかることもなく、すんなりビルド完了しました。
こんなことなら、最初からGradleにしておけばよかった。

もしかしたら、同じように詰まる人もいるかもしれないので、手順を残しておこうと思います。

この記事を書いている時期の手元の開発環境は以下です。

$ gradle -v
Gradle 6.1.1
Build time: 2020-01-24 22:30:24 UTC
Revision: a8c3750babb99d1894378073499d6716a1a1fa5d

Kotlin: 1.3.61
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_161 (Oracle Corporation 25.161-b12)
OS: Windows 10 10.0 amd64

$ code -v
1.41.1

各種インストール&環境変数の設定

次のソフトをインストールして、環境変数に各binにpath通すのとJAVA_HOMEを設定

・Java
・Kotlin
・Gradle
・VSCode

VSCodeの拡張

VSCodeに次の拡張機能を追加します。

・Java Extension Pack
・Gradle Language Support
・Kotlin
・Kotlin Language
・Spring Boot Extension Pack

Spring Boot Extension Packは、Spring Boot関連の複数の拡張機能をまとめたものです。
次の拡張機能がインストールされます

 Spring Boot Tools
 Cloudfoundry Manifest YML Support
 Concourse CI Pipeline Editor
 Spring Initializr Java Support
 Spring Boot Dashboard

プロジェクトの作成

次の手順で、Spring Bootのプロジェクトを作成します。

Ctrl+Shift+Pでコマンドパレットを開き、springと検索し、Spring Initializr: Generate a Maven Projectを選択
指示に従って、以下のように設定しました。

specify project language : Kotlin
input group id for your project : com.example
input artifact id for your project : demo
specify spring boot version :

specify spring boot version : 2.2.4

search for dependencies : weeb、DevTools、Thymeleafを入力して確定
 Spring Web : TomcatとSpring MVC のフルスタックweb開発
 Spring Boot DevTools : Spring Boot 開発ツール
 Thymeleaf(タイムリーフ) : テンプレートエンジン
「selected 3 dependencies」と表示されているはずなのでEnterで次へ。

どのフォルダー内でファイル群を生成するか尋ねられるので、フォルダを選択します。
今回は、「C:\work\kotlin」に作成しました。

「successfully generated location」のメッセージが出ると思いますので、「open」をクリック。

ビルドタスクを作成

コマンドを入力するのも大変なので、ビルドタスクを作成します。

「ターミナル > タスクの実行」 を行い、「タスクを構成する」と出るので以下のように編集します。

tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
“version": “2.0.0",
“tasks": [
{
“label": “build",
“type": “shell",
“command": “./gradlew build",
},
{
“label": “run",
“type": “shell",
“command": “./gradlew bootRun",
},
{
“label": “clean",
“type": “shell",
“command": “./gradlew clean",
},
{
“label": “check",
“type": “shell",
“command": “./gradlew check",
}
]
}

ターミナル > タスクの実行で、
build → runの順番で実行します。

http://localhost:8080/ にアクセスし、Whitelabel Error Pageの表示が出れば成功です。

Hellow Worldを表示する

引き続き、Hellow Worldを表示するソースを作ります。

「demo\src\main\kotlin\com\example\demo」に、DemoController.ktを作成します。

package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class DemoController() {
@RequestMapping(“/") fun root():String = “Hello world !!"
}

再ビルドして、http://localhost:8080/ にアクセスします。
Hello world !! が表示されていれば完成です。