Spring開発
EclipseからVsCodeに切り替えよう!となったはいいものの
「さーてデバッグ実行するぞ」とアプリを立ち上げると
- 自分:特に問題なく起動できる
- チームメンバー:起動 → ログイン後にページ遷移するとログインページまで戻ってしまう
という現象がおきた
- 同じソースコード
- 同じ拡張機能
と合わせてみてもダメで「なにこれ」となってハマった
結論:クラスパスがあってなかった
Vscodeから ctrl + Shift + P
"Java: Open Project Setting"
ここでプロジェクトごとのクラスパスの設定が見れる
Output
行をみると
- 自分:
bin/main
- チームメンバー:
build/resources/main
ズレてるじゃん
結果的にアプリで読み込むproperties
ファイルが別物となっていて冒頭の問題が発生していた
→これを合わせれば解決
VsocdeのJava
拡張機能 Java Extension Pack
を使っているが
- Eclipseモード:クラスパス
bin/main
- Gradleモード:クラスパス
build/resoures/main
があるらしい
Eclipse開発で使う
.project
.classpath
-
.project
←ディレクトリ
がプロジェクト内に存在しているとEclipseモードで開く
って感じ
自分のプロジェクトではgradleを使って
デプロイ関係の動作をひとまとめにしているが
ローカルでデバッグ実行する際は build
以下のソースセットを使うべきじゃない
bin
以下のソースセットを使わなければならない
という動きだった
チームメンバーはgitからソースを落としてきて
.project
などが生成される前に、プロジェクトを開いたため
Vscodeが「Gradleモードで開くぞ!」となってしまった
対して自分は.project
などがすでに生成されている状態でプロジェクトを開いた
→「Eclipdeモードで開くぞ!」で従来のEclipse開発通りの動作
参考