私は、必要に応じてv3.7.0のプラグインを使用していますが、JDK 9.0.1を使用しています。私は2つのrequires
ステートメントを追加しました。各ステートメントは、クラスパス(自動モジュール)のjarを参照しています。 jarファイルをModulepathに移動した後、module-info.javaはEclipseで正常にコンパイルされます。しかし、Mavenは私にコンパイラエラーを与えます。そのうちの1つが欠落しているということです(不思議なことに、前の1行だけではありません)。私は自動モジュール名をチェックしようとしましたが、このjarのコマンドだけでエラーが出ます。このエラーは何を意味し、適切なモジュール名を見つけることができるように修正しますか?module-info.java maven-compiler-pluginと自動モジュールでコンパイルに失敗する
以下の出力で私のユーザー名を置き換えました。問題のjarファイルはServiceLoader
を使用しないが、Java 9
computerName:Commander-java username$ jar --file=/Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --describe-module
Unable to derive module descriptor for: /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Provider class com.username.rcf.server.TestCmdChain not in module
computerName:Commander-java username$ java -p /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class com.username.rcf.server.TestCmdChain not in module
How to deal with java keywords in auto generated module names in Java 9?で答えがモジュール名にJavaの識別子を使用してに関連したさまざまなエラーを持ってしてコンパイルされていません。 jarの名前がrcf-1.0.jar
であるため、私のモジュールの自動jar名はrcf
にする必要があります。私が得ているエラーも異なっています。
[Java 9の自動生成モジュール名でのJavaキーワードの処理方法](https://stackoverflow.com/questions/46501388/how-to-deal-with-java-keywords-in-自動生成モジュール名 - Java-9)... \t アーティファクト 'rcf-1.0.jar'を所有していますか? – nullpointer
はい私はそれを所有しています。私はその名前にJava識別子を持っていません。それはちょうどrcfです。このエラーはServiceLoaderと関連しているようですが、エラーで説明されているクラスがServiceLoaderで使用されているインターフェイスを実装していますが、わかりません。それを理解できません。 – GabeV
重複投票が取り消されました。 Yaは、実装パッケージ[モジュールには存在しません](https://stackoverflow.com/a/46881513/1746118)のようです。 – nullpointer