play frameworkをVSCodeで開発環境を整える
VSCodeでコードを書く
できなくはないはず、 ただJavaの開発環境とかの問題もあるから試す
javaの拡張機能を導入
拡張の初期設定
Java11をインストール
play2のプロジェクトを作成
前回と同じ
% cd % cd work/java/play2 % sbt new playframework/play-java-seed.g [info] welcome to sbt 1.5.1 (N/A Java 15.0.2) [info] loading global plugins from /Users/xxxx/.sbt/1.0/plugins [info] set current project to play2 (in build file:/Users/xxxx/work/java/play2/) [info] set current project to play2 (in build file:/Users/xxxx/work/java/play2/) This template generates a Play Java project name [play-java-seed]: app01 organization [com.example]: Template applied in /Users/xxxx/work/java/play2/./app01 %
ディレクトリ構成
% tree -L 1 app01 app01 ├── app ├── build.sbt ├── conf ├── project ├── public └── test
初回起動を行う
% cd app01 % sbt run
↓
VSCodeで開くと
原因としては
まあ、jarとかが連携されていないことが問題 以下に設定することで対応はできると思われるが、数が多いとめんどくさいのでやりたくない
一旦、eclipse形式に変換する
project/plugins.sbt
// The Play plugin addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8") // Defines scaffolding (found under .g8 folder) // http://www.foundweekends.org/giter8/scaffolding.html // sbt "g8Scaffold form" addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.11.0") // 追加 addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")
eclipse用の形式に変換する
% sbt [app01] $ [app01] $ eclipse [info] About to create Eclipse project files for your project(s). [info] Successfully created Eclipse project files for project(s): [info] app01 [app01] $
VSCodeを開き直す
VSCodeのワークスペースに入れる
「ファイル」>「フォルダをワークスペースに追加」
ワークスペースを保存する
{ "folders": [ { "path": "." } ], "settings": { "workbench.colorTheme": "Monokai Dimmed", "files.exclude": { "**/.classpath": false, "**/.project": false, "**/.settings": false, "**/.factorypath": false }, "java.home": "/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home", "files.watcherExclude": { "**/target": true } } }
classpathに以下を追加
<classpathentry kind="lib" path="target/scala-2.13/classes"/>
※viewsのテンプレートを新規に作成しても参照ができずにエラーとなるため ※viewsのテンプレートは一度、画面を表示して再ビルドすることが必要
あとは色々いじってみる まあ、Intelij Ideaやeclipseの方がやりやすいかもしれんがwww