m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

play frameworkをVSCodeで開発環境を整える

VSCodeでコードを書く

できなくはないはず、 ただJavaの開発環境とかの問題もあるから試す

java拡張機能を導入

f:id:m_shige1979:20210503115120p:plain

拡張の初期設定

f:id:m_shige1979:20210503115749p:plain

Java11をインストール

f:id:m_shige1979:20210503120713p:plain

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

f:id:m_shige1979:20210503122032p:plain

VSCodeで開くと

f:id:m_shige1979:20210503122259p:plain

原因としては

まあ、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を開き直す

f:id:m_shige1979:20210503123544p:plain

VSCodeワークスペースに入れる

「ファイル」>「フォルダをワークスペースに追加」

f:id:m_shige1979:20210503123754p:plain

ワークスペースを保存する

f:id:m_shige1979:20210503124019p:plain

{
  "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