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

ピーター:

Eclipseで(M2Eを使用して)Mavenを使用し、java.util.ServiceLoaderに依存していくつかのファクトリクラスを動的にロードするプロジェクトを構築しています。Mavenで実行すると問題なく動作しますが、組み込みのEclipse JUnit4 Runnerを使用してテストを実行すると、サービスを取得できず、テストが成功しません。

META-INF / servicesをJUnitビルドパスに手動で追加するために必要なことはありますか?src / main / resources / META-INF / servicesまたはsrc / main / java / META-INF / servicesで機能させることができませんでした。M2Eがビルドパスをセットアップする方法に関連していますか?まったく新しいプロジェクトでテストを作成しましたが、それでも失敗しました。

失敗している基本的なコードは次のとおりです。

public class TestServiceLoader<S>
{
   public TestServiceLoader(final Class<S> serviceClass)
   {

       ServiceLoader<S> serviceLoader =
            java.util.ServiceLoader.load(serviceClass, serviceClass.getClassLoader());

       Iterator<S> services = serviceLoader.iterator();

       if(!services.hasNext())
       {
           throw new RuntimeException("Failed to get any services for this class");
       }
   }
}

テストは次のようになります。

@Test
public final void testTestServiceLoader()
{
    TestServiceLoader<TestFactory> serviceLoader = new TestServiceLoader<TestFactory>(TestFactory.class);
}

TestFactoryは次のように定義されます。

public interface TestFactory
{

}

TestFactoryImplは次のように定義されます。

public class TestFactoryImpl implements TestFactory
{

}

私はもともとhttp://weblogs.java.net/blog/kohsuke/archive/2009/03/my_project_of_t.htmlからMetaInfServicesジェネレーターを使用していましたが、それを削除して手動でファイルを作成すると、依然として失敗していましたMaven Surefireプラグインを使用して実行すると、Eclipseでも同じように成功します。

ピーター:

M2E開発者は、リソースではありますが、META-INF / services /が機能部分である場合でも、リソースがMavenビルドに影響を与えると信じているようです。

「実際にはプロジェクトリソースフォルダーをビルドパスに追加する必要はありません(Maven Builderはそれなしで機能します)が、便利であると見なされ、パッケージエクスプローラーやその他のEclipseビューで見栄えがよくなりました。」M2E FAQ

ハックしたい場合は、特別なM2Eプロファイルをpom.xmlファイルにエンコードして、M2Eインクリメンタルビルドフィルターを作成し、リソースをコピーすることができます。Sonatype M2Eclipse Wiki

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

EclipseのJUnit4

分類Dev

EclipseがJUnit4を使用する必要があるのにJUnit5を使用しようとするのはなぜですか?

分類Dev

JUnit4 + Eclipse「起動中に内部エラーが発生しました」

分類Dev

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

分類Dev

junit4がdouble [] sに対してAssert.assertArrayEquals()を持たないのはなぜですか?

分類Dev

EclipseでJUnit4にアップグレードする

分類Dev

Junit4:expected = ExceptionがSPRINGで機能しない

分類Dev

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

分類Dev

Junit4でSpring-retry式が失敗する

分類Dev

JUnit5はJUnit4と下位互換性がありますか?

分類Dev

Eclipseでjarとしてパッケージ化した後、log4j2がファイルにログを記録しないのはなぜですか?

分類Dev

POSModelファイルのロードがWEB-INFフォルダー内から機能しないのはなぜですか?

分類Dev

Mavenを使用してEclipseで単一のJUnit4テストを実行する

分類Dev

Eclipseが個々のJavaScript、HTML、CSSファイルのみを保存するのが遅いのはなぜですか?

分類Dev

JUnit4テストを一晩実行するようにEclipseをスケジュールします

分類Dev

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

分類Dev

JUnit4 Runnerを使用したSpring Testingが別のソリューションを試した後機能しない

分類Dev

Androidで「OSに依存しないパス「META-INF / DEPENDENCIES」エラーで複数のファイルが見つかりました」を修正する方法

分類Dev

Eclipseが不要なファイルをbinフォルダーにコピーするのはなぜですか?

分類Dev

Junit4 + Spring 2.5:アサートが「NoClassDefFoundError」をスローする

分類Dev

一部のファイルがEclipseに表示されないのはなぜですか?

分類Dev

ionic 4のメインアプリのscssファイルが機能しないのはなぜですか?

分類Dev

JavaファイルがEclipseで奇妙に見えるのはなぜですか?

分類Dev

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

分類Dev

環境に依存しないMETA-INFでファイルを開く方法

分類Dev

JUnit4でassertThatを使用する

分類Dev

なぜfloat( 'Inf')はfloat( 'Inf')がPythonでfalseを返すのですか?

分類Dev

JUnitが英語以外の文字を含むファイルで機能しないのはなぜですか?(NetBeansを使用)

分類Dev

random.uniform(0、float( "inf"))が常にinfを返すのはなぜですか?

Related 関連記事

  1. 1

    EclipseのJUnit4

  2. 2

    EclipseがJUnit4を使用する必要があるのにJUnit5を使用しようとするのはなぜですか?

  3. 3

    JUnit4 + Eclipse「起動中に内部エラーが発生しました」

  4. 4

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

  5. 5

    junit4がdouble [] sに対してAssert.assertArrayEquals()を持たないのはなぜですか?

  6. 6

    EclipseでJUnit4にアップグレードする

  7. 7

    Junit4:expected = ExceptionがSPRINGで機能しない

  8. 8

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

  9. 9

    Junit4でSpring-retry式が失敗する

  10. 10

    JUnit5はJUnit4と下位互換性がありますか?

  11. 11

    Eclipseでjarとしてパッケージ化した後、log4j2がファイルにログを記録しないのはなぜですか?

  12. 12

    POSModelファイルのロードがWEB-INFフォルダー内から機能しないのはなぜですか?

  13. 13

    Mavenを使用してEclipseで単一のJUnit4テストを実行する

  14. 14

    Eclipseが個々のJavaScript、HTML、CSSファイルのみを保存するのが遅いのはなぜですか?

  15. 15

    JUnit4テストを一晩実行するようにEclipseをスケジュールします

  16. 16

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

  17. 17

    JUnit4 Runnerを使用したSpring Testingが別のソリューションを試した後機能しない

  18. 18

    Androidで「OSに依存しないパス「META-INF / DEPENDENCIES」エラーで複数のファイルが見つかりました」を修正する方法

  19. 19

    Eclipseが不要なファイルをbinフォルダーにコピーするのはなぜですか?

  20. 20

    Junit4 + Spring 2.5:アサートが「NoClassDefFoundError」をスローする

  21. 21

    一部のファイルがEclipseに表示されないのはなぜですか?

  22. 22

    ionic 4のメインアプリのscssファイルが機能しないのはなぜですか?

  23. 23

    JavaファイルがEclipseで奇妙に見えるのはなぜですか?

  24. 24

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

  25. 25

    環境に依存しないMETA-INFでファイルを開く方法

  26. 26

    JUnit4でassertThatを使用する

  27. 27

    なぜfloat( 'Inf')はfloat( 'Inf')がPythonでfalseを返すのですか?

  28. 28

    JUnitが英語以外の文字を含むファイルで機能しないのはなぜですか?(NetBeansを使用)

  29. 29

    random.uniform(0、float( "inf"))が常にinfを返すのはなぜですか?

ホットタグ

アーカイブ