5

2つの依存関係を持つmaven3webapp(war)プロジェクトがあります。1つはjar(ehcache)で、もう1つはwar依存関係(私が制御できないサードパーティのlib)です。

サードパーティの戦争依存関係は、私が使用する必要がある後のバージョンと衝突しているehcacheのはるかに古いバージョンへの依存関係を持っています。

次の手順は、アプリのパッケージ中に発生します。

  1. 私のehcachejarは/WEB-INF/lib/にコピーされます
  2. ehcacheも含む.war依存関係が構築され、ターゲットの上にオーバーレイされます
  3. 最終的な.warファイルはターゲットから作成されます

私が何をしても、戦争には常に以前のバージョンのehcacheが含まれます。ターゲットディレクトリから.jarファイルを削除するmaven-antrun-pluginを介して実行するantスクリプトを作成しようとしました。ただし、これは常に.war依存関係がオーバーレイされる前に実行されます。

以前のバージョンのehcacheを除外/削除する方法を知っている人はいますか?

4

2 に答える 2

8

おそらく、オーバーレイからファイル名でehcachejarを除外する必要があります。依存する戦争の明示的なオーバーレイをまだ宣言していない場合は、戦争プラグインの構成でも宣言する必要があります。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <overlays>
          <overlay>
            <groupId>your.thirdparty.war.groupId</groupId>
            <artifactId>your.thirdparty.war.artifactId</artifactId>
            <excludes>
              <exclude>WEB-INF/lib/ehcache*.jar</exclude>
            </excludes>
          </overlay>
        </overlays>
      </configuration>
    </plugin>
  </plugins>
</build>
于 2012-06-14T16:03:46.193 に答える
-1

推移的な依存関係を除外する方法の詳細については、以下を参照してください。

スタックオーバーフローの場合:単一の依存関係のすべての推移的な依存関係を除外します

ウェブ上(リファレンス)http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-project-dependencies.html#pom-relationships-sect-transitive

于 2012-06-14T20:43:17.857 に答える