1

テスト対象のシステム(App A)が接続して、RESTインターフェイスに対して呼び出しを実行できるように、テスト内からWebアプリリソースとして外部(場合によってはリモート).warファイル(App T)を使用して桟橋を起動する必要があります。

テスト対象のシステムの戦争のために突堤を開始する方法についてのチュートリアルをたくさん見つけました(アプリA)。また、ビルドサイクルの一部として、Mavenに外部.war(App T)の突堤を開始させる方法についてもいくつか見つけました。しかし、上記が可能かどうかはわかりません。

理想的には、AppTプロジェクトをMaven依存関係として追加し、クラスパスを介してアクセスします。

4

1 に答える 1

3

それがリモートの war ファイルであった場合 (おそらく jetty プラグインを実行する前に最初にダウンロードする必要があるでしょう)、どのように実行するのかわかりませんが、次のようにします。 'ファイル システムのどこかにすでにある:

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${version.jetty}</version>
            <configuration>

                <contextHandlers>
                    <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
                        <war>${project.build.directory}/webapps/foo-bar.war</war>
                        <contextPath>/foo</contextPath>
                    </contextHandler>
                </contextHandlers>

            </configuration>
        </plugin>

私のアドバイスは、その戦争を scope:provided の依存関係として追加することです。

<dependencies>

    <!-- Webapps which will not be included in the final WAR artifact: -->
    <dependency>
        <groupId>com.foo.bar</groupId>
        <artifactId>foo-bar</artifactId>
        <version>${version.foo.bar}</version>
        <type>war</type>
        <scope>provided</scope>
    </dependency>

</dependencies>

さらに、次のようなものが必要になる可能性が最も高いでしょう。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.3</version>

            <executions>
                <execution>
                    <!-- Used to copy the foo bar war to the webapps folder -->
                    <id>copy-dependency-foo-bar</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>

                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.foo.bar</groupId>
                                <artifactId>foo-bar</artifactId>
                                <version>${version.foo.bar}</version>
                                <type>war</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${project.build.directory}/webapps</outputDirectory>
                                <destFileName>foo-bar.war</destFileName>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>

上記の最後の部分により、jetty プラグインがロードを試行する前に、解決された成果物がターゲット ディレクトリの webapps サブフォルダーに確実にコピーされます。

于 2012-06-21T12:47:09.787 に答える