Closed2

VSCodeのJava拡張機能でGradleプロジェクト読み込み時にclasspathが書き換わる

うなぎうなぎ

ある日急に、VSCodeで読み込んでいるJavaのGradleプロジェクトのクラスパス設定が変わっていた。通常、build/classes配下にVSCodeにてコンパイルされたJavaのclassファイルが出力されるが、いつの間にかbin配下に出力される設定になっていた。

原因はVSCodeのJava拡張機能。
最新のリリースバージョンで、Gradleプロジェクトの読み込みに異常が起きていた。
https://github.com/redhat-developer/vscode-java/issues/3995

Java拡張機能のリポジトリのissueに事象が報告され解消されている。
Gradleプロジェクト読み込み時に、VSCodeの内部的にはBuildShipによってプロジェクト設定を読み込んでいたため、コンパイル時の出力ディレクトリがbin配下に変更されていた。

うなぎうなぎ

BuildShipはEclipseでGradleプロジェクトを読み込むときに使われるプラグイン。

VSCodeなのに何故Eclipseの名前が出てくるのか?

VSCodeのJava拡張機能は内部的にはJDT(Java Development Tools)を使用している。
JDTはもともとEclipseでJavaプロジェクトを読み込むために開発されたもの。
この2つのIDEは無関係なようで内部的に使用されているライブラリで共通しているよう。

このJDTが使われていることによって、部分的にEclipseのような挙動が見られる。
ちなみに、クラスパスの出力ディレクトリ設定がbin配下というのは、
EclipseでJavaプロジェクトを作成した際のデフォルトの設定。

BuildShipでビルドされる → Eclipseに準拠した設定が構成されるという流れ。

このスクラップは5ヶ月前にクローズされました