0

jetty-maven プラグインを使用して、統合テスト用の Web アプリをデプロイしています。2 つの POM で構成されるプロジェクトがあります。1 つはルートに、もう 1 つはプロジェクト ルートのディレクトリにあります (これを webapp ディレクトリと呼びます)。webapp ディレクトリで maven (jetty-maven プラグインを使用) から統合テストを実行すると、完全に正常に動作します。ただし、ルート ディレクトリから実行すると、webapp ディレクトリ内に移動してテストを実行しますが、何らかの理由でパスが間違っています。(その結果、すべてのリソースが見つかりません)。

ルート ディレクトリ パスを webapp リソース パスに連結します。また、パス内のドット演算子も認識しません。

例: 「./resources/resource.xml」を探す場合

テストが webapp ディレクトリから実行された場合は問題なく動作しますが、ルート ディレクトリから実行された場合はパスが「c:/project/./resources/resource.xml」になります。これを行っているのは jetty-maven プラグインですが、その理由はわかりません。

これを修正する方法はありますか?

これが私のwebappディレクトリPOMの関連部分です

              <groupId>org.mortbay.jetty</groupId>
              <artifactId>jetty-maven-plugin</artifactId>
              <configuration>
                   <webApp>${basedir}/target/webappSNAPSHOT.war</webApp>
                   <extraClasspath>${project.build.testOutputDirectory}</extraClasspath>
                   <testClassesDirectory>${basedir}/target/test-classes</testClassesDirectory>
                   <useTestClasspath>true</useTestClasspath>
                   <stopPort>9929</stopPort>
                   <stopKey>stopKey</stopKey>

              </configuration>
4

1 に答える 1

1

ほとんどの場合、Web アプリのリソース パスで ${basedir} を指定するだけで済みます。

于 2011-06-21T15:18:54.357 に答える