問題タブ [module-info]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
13887 参照

java - Java 9 で自動生成されたモジュール名のモジュール記述子を取得できませんか?

私のプロジェクトは Netty Epoll トランスポートに依存しています。依存関係は次のとおりです。

この依存関係の自動生成されたモジュール名は次のとおりです。

またnative、Java 9 ではキーワードが予約されているため、このモジュールを依存関係としてプロジェクトに追加することはできません。

のため:

さらに、jar ツール--describe-moduleは次のように報告します。

次のモジュール記述子を取得できません: netty-transport-native-epoll-4.1.17.Final-SNAPSHOT-linux-x86‌_64.jar netty.transport.native.epoll: 無効なモジュール名: 'native' は Java 識別子ではありません

回避策はありますか? (もちろん、「正しいnettyアーティファクトをリリースする」を除く)。

編集

メンテナー向けの簡単な修正として、次の行をビルドに追加できます。

0 投票する
2 に答える
1037 参照

java - SPI + JDK 9 + module-info.java

JDK 9 で SPI を試しています。例全体は、「module-info.java」がなくても JDK 9 で動作します。「module-info.java」を追加した後、ServiceLocator は実装クラスを見つけられません。私は混乱しており、モジュール化された JDK 9 プロジェクトで動作する SPI の例を見つけることができません。

したがって、私のサンプル プロジェクトは次のようになります。

インターフェイスを導入しました:

このインターフェースは、以下によって実装されます。

実装は、次のようなコードで検索されます。

そして今が楽しい部分です。以下のクラスを実行していない場合:

  • /implementationB/src/main/java/module-info.java
  • /applicationB/src/main/java/module-info.java

次に、実装クラスが見つかり、テキストが出力されます。

この 2 つの「module-info.java」ファイルを導入した後、実装クラスは ServiceLocator によって検出されません。/applicationB/src/main/java/module-info.java の内容:

/implementationB/src/main/java/module-info.java の内容:

コメントを外すと:

行の場合、コンパイル エラーが発生します。

コンパイル エラーの候補としてパッケージ名を変更しようとしましたが、「分割パッケージ」の問題が発生しました。

完全にモジュール化された JDK 9 で ServiceLocator を使用するにはどうすればよいですか? 出来ますか?誰も実際の例を見たことがありますか? コードはここでも見ることができます: https://github.com/RadoslawOsinski/spidemo

0 投票する
2 に答える
2268 参照

java - Maven の依存関係から Java 9 の依存関係を構築する方法

Java9 は、OSGI や Maven の依存関係に似た強力なモジュール性を導入しています。

Mavenの依存関係を検査するJava 9の依存関係を構築できるMavenプラグインはありますか?

たとえば

この記事を読みましたが、あまり役に立ちません - Java 9 への移行のために Java ee 機能に対する依存関係を maven で表現する方法は?