Closed cypher256 closed 1 month ago
Eclipse で Java 9 以上を使用したときに、以下のビルドエラーが発生する場合があります。 javac や gradle、maven のコマンドでコンパイルした場合は、エラーが発生しません。
パッケージ javax.xml.parsers は複数のモジュールからアクセス可能です: <unnamed>, java.xml パッケージ javax.xml.transform は複数のモジュールからアクセス可能です: <unnamed>, java.xml パッケージ javax.xml.transform.dom は複数のモジュールからアクセス可能です: <unnamed>, java.xml パッケージ javax.xml.transform.stream は複数のモジュールからアクセス可能です: <unnamed>, java.xml パッケージ org.w3c.dom は複数のモジュールからアクセス可能です: <unnamed>, java.xml
Java 仕様に厳密に従ったとされる Eclipse JDT でのみ発生するエラーです。しかし、元の Project Jigsaw の設計によれば、パッケージが名前付きモジュールと名前なしモジュールの両方で定義されている場合、名前なしモジュールのパッケージは無視されなければなりません。
Pleiades All in One 2024-06 以降のリリースで、エラーが発生しないように Pleiades All in One の自動デフォルト設定機能で対応します。Eclipse 上でのエラー回避のために、Gradle や Maven で依存関係を除外設定する必要はありません。
workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs に下記設定を追加
org.eclipse.jdt.core.compiler.ignoreUnnamedModuleForSplitPackage=enabled
Pleiades All in One 2024-06 で対応済み
問題点
Eclipse で Java 9 以上を使用したときに、以下のビルドエラーが発生する場合があります。 javac や gradle、maven のコマンドでコンパイルした場合は、エラーが発生しません。
原因
Java 仕様に厳密に従ったとされる Eclipse JDT でのみ発生するエラーです。しかし、元の Project Jigsaw の設計によれば、パッケージが名前付きモジュールと名前なしモジュールの両方で定義されている場合、名前なしモジュールのパッケージは無視されなければなりません。
対応
Pleiades All in One 2024-06 以降のリリースで、エラーが発生しないように Pleiades All in One の自動デフォルト設定機能で対応します。Eclipse 上でのエラー回避のために、Gradle や Maven で依存関係を除外設定する必要はありません。
workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs に下記設定を追加