Gradleを使用したJARのMETA-INF / services

pvorb:

でロードできるプラグインモジュールを構築したいと思いましたServiceLoaderこれには、META-INF/servicesディレクトリにファイルを追加する必要があります。ファイルには、サービスインターフェイスにちなんで名付けられ、ファイルを実装するクラスへの修飾パスが含まれています。次に、を呼び出してこれらのサービスをロードできますServiceLoader.load()

次に例を示します。

というプラグインインターフェイスを提供したいとしますorg.example.plugins.PluginService次に、このサービスの実装をクラスで提供しorg.example.plugins.impl.ExamplePluginます。

何らかのプラグインメカニズムが必要な場合は、実装を含むJARファイルを作成できます。このJARファイルには、ファイルも含まれている必要がありますMETA-INF/services/org.example.plugins.PluginServiceこのファイルには1行が含まれている必要があります

org.example.plugins.impl.ExamplePlugin

ServiceLoader実装を見つけられるようにします。そのJARファイルがビルドパスにある場合は、次の呼び出しでプラグインをロードできます。

Iterator<PluginService> it = ServiceLoader.load(PluginService.class).iterator();

このイテレータを使用すると、で検出されたすべてのプラグインにもアクセスできますServiceLoader

何らかの理由で、GradleはMETA-INFデフォルトでディレクトリにファイルを含めません結果のJARにそのようなファイルを含める方法はありますか?

metaInfクラスのメソッドすでに見つかりましたJarしかし、私は自分で解決策を見つけるのに十分なグルーヴィーさを知りません。

axtavt:

あなたは配置META-INF/services/org.example.plugins.PluginServicesrc/main/java、したがって、つまり、Mavenのディレクトリレイアウト規則に従ってフォルダリソースに配置する必要があり、それはリソースファイルです、が、それはソースではありません

src/main/resources/META-INF/services/org.example.plugins.PluginService

この場合、すべてがそのまま動作します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Mavenを使用してJARの「META-INF / services」フォルダーに構成ファイルを含める方法

分類Dev

EclipseでMETA-INF / servicesフォルダーを作成する

分類Dev

META-INF \ services \ javax.xml.transform.TransformerFactoryを含むxalan.jarが、Xalan実装に組み込まれたJDK 1.6を引き継ぐのを防ぐ方法は?

分類Dev

Javaモジュールを使用する場合は、古いjava meta-inf / servicesを回避してください

分類Dev

Eclipse JUnit4 RunnerがMETA-INF / servicesファイルを取得しないのはなぜですか

分類Dev

saxon-xpath-9.1.0.8.jar!/META-INF/services/javax.xml.xpath.XPathFactory:2:構成ファイルの構文が不正です

分類Dev

APK META-INF / services /にコピーされたAndroid重複ファイル

分類Dev

META-INF / servicesファイルとMavenアセンブリプラグインのマージ

分類Dev

META-INFをGradleのどこに配置しますか?

分類Dev

META-INFをGradleのどこに配置しますか?

分類Dev

`A(A == -Inf)=-realmax;`の意味

分類Dev

Matlab xlswrite()を使用したExcelでのInf

分類Dev

np.infとfloat( 'Inf')の違い

分類Dev

「inf」と「-inf」を区別する

分類Dev

gdbのinfとは

分類Dev

生成されたjarファイルからMETA-INF / mavenフォルダーを除外します

分類Dev

Maven: Exclude "META-INF/maven" folder from JAR

分類Dev

Mavenでmeta-infフォルダーなしでjarを作成する方法は?

分類Dev

gradleプロジェクトの依存関係からMETA-INFをどのように除外しますか?

分類Dev

Spring Boot 1.5.3jarがsrc / main / resources / META-INF / resources /内のjspファイルを認識しない理由

分類Dev

生成されたMETA-INFファイルがないGradle出力

分類Dev

jar META-INFにファイルを追加する方法

分類Dev

Maven:JARから「META-INF / maven」フォルダーを除外

分類Dev

Gradle重複エントリエラー:META-INF / MANIFEST.MF(またはjarからファイルを削除する方法)

分類Dev

JBossの起動時のエラー-提供されたインデックスを読み取れませんでした:/content/<<warFile>>r/WEB-INF/lib/camel-api-3.0.1.jar/META-INF/jandex.idx

分類Dev

META-INFの目的は何ですか?

分類Dev

META-INFがMETA-INFと呼ばれるのはなぜですか?

分類Dev

Gradle ビルドに失敗しました - APK META-INF にコピーされた重複ファイル

分類Dev

:Inf x 1を:Inf x 1で割ると、:Inf x:InfMatlabが得られます。

Related 関連記事

  1. 1

    Mavenを使用してJARの「META-INF / services」フォルダーに構成ファイルを含める方法

  2. 2

    EclipseでMETA-INF / servicesフォルダーを作成する

  3. 3

    META-INF \ services \ javax.xml.transform.TransformerFactoryを含むxalan.jarが、Xalan実装に組み込まれたJDK 1.6を引き継ぐのを防ぐ方法は?

  4. 4

    Javaモジュールを使用する場合は、古いjava meta-inf / servicesを回避してください

  5. 5

    Eclipse JUnit4 RunnerがMETA-INF / servicesファイルを取得しないのはなぜですか

  6. 6

    saxon-xpath-9.1.0.8.jar!/META-INF/services/javax.xml.xpath.XPathFactory:2:構成ファイルの構文が不正です

  7. 7

    APK META-INF / services /にコピーされたAndroid重複ファイル

  8. 8

    META-INF / servicesファイルとMavenアセンブリプラグインのマージ

  9. 9

    META-INFをGradleのどこに配置しますか?

  10. 10

    META-INFをGradleのどこに配置しますか?

  11. 11

    `A(A == -Inf)=-realmax;`の意味

  12. 12

    Matlab xlswrite()を使用したExcelでのInf

  13. 13

    np.infとfloat( 'Inf')の違い

  14. 14

    「inf」と「-inf」を区別する

  15. 15

    gdbのinfとは

  16. 16

    生成されたjarファイルからMETA-INF / mavenフォルダーを除外します

  17. 17

    Maven: Exclude "META-INF/maven" folder from JAR

  18. 18

    Mavenでmeta-infフォルダーなしでjarを作成する方法は?

  19. 19

    gradleプロジェクトの依存関係からMETA-INFをどのように除外しますか?

  20. 20

    Spring Boot 1.5.3jarがsrc / main / resources / META-INF / resources /内のjspファイルを認識しない理由

  21. 21

    生成されたMETA-INFファイルがないGradle出力

  22. 22

    jar META-INFにファイルを追加する方法

  23. 23

    Maven:JARから「META-INF / maven」フォルダーを除外

  24. 24

    Gradle重複エントリエラー:META-INF / MANIFEST.MF(またはjarからファイルを削除する方法)

  25. 25

    JBossの起動時のエラー-提供されたインデックスを読み取れませんでした:/content/<<warFile>>r/WEB-INF/lib/camel-api-3.0.1.jar/META-INF/jandex.idx

  26. 26

    META-INFの目的は何ですか?

  27. 27

    META-INFがMETA-INFと呼ばれるのはなぜですか?

  28. 28

    Gradle ビルドに失敗しました - APK META-INF にコピーされた重複ファイル

  29. 29

    :Inf x 1を:Inf x 1で割ると、:Inf x:InfMatlabが得られます。

ホットタグ

アーカイブ