Java 9 で自動生成された名前のモジュールの依存関係を解決できません?
この問題は、自動生成されたモジュールとの依存関係がある場合に発生します。名前には、Java 9 で予約されているキーワード「native」が含まれています。その結果、それを依存関係としてモジュールに追加することができなくなります。 descriptor.
解決策:
この問題を解決するには、次の 2 つの主なアプローチが考えられます:
追加自動モジュール名属性:
アーティファクト所有者は次のことができます。 Automatic-Module-Name 属性を指定するアーティファクトを含む META-INF/MANIFEST.MF ファイルをパッケージ化します。この属性は、モジュール記述子によって使用されるモジュール名を定義します。 Automatic-Module-Name を有効な名前 (「ネイティブ」を除く) に設定することで、問題を解決できます。
モジュール宣言を追加JAR:
アーティファクト所有者は、次を使用してモジュール宣言を追加できます。 module-info.java を JAR ファイルに追加します。これにより、モジュール名を明示的に指定できるようになり、自動生成された名前が回避されます。ただし、このアプローチはライブラリとフレームワークがボトムアップで採用するため、段階的な移行が必要です。
モジュール記述子の仕様:
によるとJava 9 モジュール宣言仕様では、モジュール名はピリオドで区切られた 1 つ以上の Java 識別子で構成されます。これは、モジュール名が次の規則に従う必要があることを意味します:
Java 9 のアンダースコアに関する注意:
通常、アンダースコアはモジュール名の一部として使用できますが、重要です。 Java 9 ではアンダースコアがキーワードになっていることに注意してください。したがって、最初の文字としてアンダースコアを含む識別子は避ける必要があります。例:
int _native; // Works fine int _; // Causes an error in Java 9
以上が予約されたキーワードを含む自動生成された名前による Java 9 モジュールの依存関係の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。