12

マルチモジュールプロジェクト。

ここに画像の説明を入力

私の ejb モジュールには、強調表示されたファイルがあります。Web モジュールで arquillian テストを実行するのと同じファイルを使用したいと思います。

Web モジュールの pom.xml ファイルでは、ejb モジュールに依存していますが、ejb モジュールから「実際の」persistence.xml を取得したくないため、スコープが提供されています。

<dependency>
        <groupId>com.comp</groupId>
        <artifactId>g4tc-ejb</artifactId>
        <type>ejb</type>
        <!-- Use scope provided as we are creating an ear file, and we do not want the packaged jar file in test, as we want the test-persistence.xml -->
        <scope>provided</scope>
    </dependency>

したがって、RestTest クラスには、ejb モジュールのファイルを含めたいと考えています。

@Deployment
public static WebArchive getDeployment() {

    File[] files = Maven.resolver().loadPomFromFile("pom.xml")
            .importRuntimeAndTestDependencies().resolve().withTransitivity().asFile();

    WebArchive war = ShrinkWrap.create(WebArchive.class, "g4tcRestWebservice.war")
            .addAsLibraries(files)
            .addPackages(true, "com.comp.g4tc.web")
            .addPackages(true, "com.comp.g4tc.ejb") /* Load the classes from the ejb module instead of through dependency to avoid getting
                                                    the g4tc-ejb/src/java/resources/META-INF/persistence.xml, we want the one from the test package */
            .addAsResource( "HERE AT THE test-persistence.xml FROM THE EJB MODULE", "META-INF/persistence.xml");

    System.out.println(war.toString(true));
    return war;
}

それを行うための最良のアプローチは何ですか。?? ありがとう

4

1 に答える 1