VS CodeでSpringアプリケーション開発
はじめに
javaと言えばeclipseな世代です。
久しく本格的にjavaで開発していないので、eclipseは基本的にPCに入れていません。
普段の開発はVS Codeが多いので、VS Codeで何とかならないかと思い試してみました。
InteliJでいいじゃんていうのは無しで。
結論
いけた。
割とサクサクしている気がする。
準備
拡張機能のインストール
色々あるけれどサクっと行きたいので、Exention Pack中心に
Extension Pack for Java
言語サポート、プロジェクト管理、デバッガ、テストランナー、Mavenなどがパックになっています。
- Language Support for Java(TM) by Red Hat
- Debugger for Java
- Test Runner for Java
- Maven for Java
- Project Manager for Java
Mavenじゃなくてgradleがいいって方はこちらを追加で入れておけばよいかと思います。
- Gradle for Java
Spring Boot Extension Pack
SpringのExension Packも入れておきます。
- Spring Boot Tools
- Spring Initializr Java Support
- Spring Boot Dashboard
手順
プロジェクト作成
適当にVS Codeを開き、F1クリックし、「spring」と入力すると絞り込めるので、
「Spring Initializr: Create Maven a Project...」を選択
色々聞かれるので選択していきます。
-
バージョン:3.0.1
-
プロジェクト:Java
-
グループID:com.example(デフォルト)
アーティファクトID:demo(デフォルト)
パッケージ:war
javaバージョン:19
依存関係:必要に応じて
今回は、下記を指定しました。
この辺は後からpomに追加していってもよいかと思います。
- Spring Boot DevTools
- Lombok
- Spring Web
- Thymeleaf
- Spring Security
- MySQL Driver
最後にプロジェクトを作成するディレクトリを選択
これでプロジェクトが作成されます。
プロジェクトを開く
作成されたプロジェクトをVS Codeで開くとこんな感じ
右下の「JAVA PROJECTS」がパッケージエクスプローラー的な感じでしょうか。
Maven関係のコマンドは「MAVEN」を開いて右クリックすれば色々出てきます。
Maven Install
とにもかくにもMaven Install
エラー
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project demo: Fatal error compiling: エラー: 19は無効なターゲット・リリースです -> [Help 1]
[
調子に乗りすぎて最新選びすぎたようです。
$java -version
java version "16.0.2" 2021-07-20
Java(TM) SE Runtime Environment (build 16.0.2+7-67)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
PCに入っているjavaが古いので最新化して再実行
今度はうまくいきました。
ちなみにターミナルからコマンド実行でも可能です。
./mvnw install -f pom.xml
実行
実行とデバッグを開きます。
デバッガを選択:java
デバッグ実行が始まります。
デフォルトだと8080ポートを使用するので、他で使っていたら空けておきましょう。
http://localhost:8080/ にアクセスします。
※Spring Securityを入れているので、login画面が表示されました。
-
ブレイクポイントを付与
eclipse同様ファイルの左端をクリックで可能
-
再実行
ブレイクポイントで止まります。
ステップイン等の操作はVS Code上のアイコン操作で行います。
それぞれショートカットも割り当てられています。
- ステップイン:F11
- ステップオーバー:F10
- 続行:F5
また、変数などは自動的に値を表示してくれます。
デバッグ実行がうまく行かない場合
プロジェクト直下の.vscodeディレクトリにlaunch.jsonというファイルを作成し、
下記のように記述します。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch DemoApplication",
"request": "launch",
"mainClass": "com.example.demo.DemoApplication",
"projectName": "demo"
}
]
}
実行とデバッグを再度確認すると、下記のようになっているかと思いますので、
実行ボタンをクリックすると実行できるかと思います。
最後に
比較的手間なくVS CodeでSpringアプリケーション開発が進められるように思えました。
環境変数の指定などはlaunch.jsonで設定可能なので、
実行やデバッグについてもeclipseと大差ないかなと感じました。
一方でjdkの切り替えは設定の方で出来そうなのですが、
これはうまいこと行きませんでした。
最近のjavaはわかりませんが、私の経験上javaのバージョン変えると色々問題起きたので、
この点が解消できないと複数プロジェクト、複数バージョンの開発は厳しいなという印象です。
Discussion