1

Web サービスで使用するための jar ファイルを生成する Maven プロジェクトがあります。を使用して実行する統合テストがありますjetty-maven-plugin

コンパイルされた jar ファイルで統合テストを実行するには、<systemPath>${project.build.directory}/${project.build.finalName}.${project.packaging}</systemPath>. 統合テストは、コンパイルされた jar ファイルを使用し、ディレクトリから Web アプリを正しく作成して、期待どおりに実行されますsrc/test

したがって、このプロジェクトのビルドに関しては、このセットアップは非常にうまく機能します。

問題は、リリース プロセス中に展開される POM ファイルにまだsystemPath依存関係があることです。これは、jar を使用するプロジェクトがビルド中にエラーを報告していることを意味します。エラーは、jar ファイルが「絶対パスを指定する必要がある」ことを示しています。これらのビルドは失敗しませんが、ログが雑然としていて誤解を招きます。

systemPathMaven リポジトリにデプロイされている POM からこれを削除しようとしています。どうすればこれを行うことができますか?

参考までに、プロジェクトの POM の関連部分を次に示します。

<build>
  <plugins>
    <plugin>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-maven-plugin</artifactId>
      <version>9.0.7.v20131107</version>
      <configuration>
        <webAppSourceDirectory>${project.basedir}/src/test/webapp</webAppSourceDirectory>
        <classesDirectory>${project.build.testSourceDirectory}</classesDirectory>
        <useTestClasspath>true</useTestClasspath>
      </configuration>
      <dependencies>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>${project.artifactId}</artifactId>
          <version>${project.version}</version>
          <scope>system</scope>
          <systemPath>${project.build.directory}/${project.build.finalName}.${project.packaging}</systemPath>
        </dependency>
      </dependencies>
      <executions>
        <execution>
          <id>start-jetty</id>
          <phase>pre-integration-test</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <scanIntervalSeconds>0</scanIntervalSeconds>
            <daemon>true</daemon>
          </configuration>
        </execution>
        <execution>
          <id>stop-jetty</id>
          <phase>post-integration-test</phase>
          <goals>
            <goal>stop</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
4

2 に答える 2