2

気が遠くなるようなものを1つ見つけました。ばね依存座標には2つのバージョンがあります。

プロジェクトには、SpringMVCとSpringFlowに依存しています。依存関係には2つの並列セットがあります。

Spring MVCには、次のスキームの依存関係がありますorg.springframework:spring-asm

Spring Flowには、次のスキームの依存関係がありますorg.springfrmaework:org.springframework.asm

同じ依存関係の2つの異なるセットがあるのはなぜですか?どうすれば克服できますか?

<dependency>
        <groupId>org.springframework.webflow</groupId>
        <artifactId>org.springframework.webflow</artifactId>
        <version>2.3.1.RELEASE</version>
    </dependency>


<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.0.4.RELEASE</version>
    </dependency>
4

1 に答える 1

3

これは基本的に、使用しているアーティファクトの問題です。

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.webflow</artifactId>
    <version>2.3.1.RELEASE</version>
</dependency>

SpringSource Enterprise Bundleリポジトリからのアーティファクトであり、これらのアーティファクトはOSGiに準拠しています。私は引用します:

SpringSourceバンドルリポジトリへようこそ。ここでは、Springアプリケーションの開発時に一般的に使用される数百のオープンソースエンタープライズライブラリのOSGi対応バージョンを見つけることができます。

一方、あなたは持っています:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>

Mavenリポジトリからの標準アーティファクトです。

org.springframework.asm

OSGiで使用するためのasmアーティファクトのパッチバージョンです。

これを修正する最善の解決策は、SEBRリポジトリアーティファクトのみを使用することです。

これをお勧めします。これは、Maven中央リポジトリのjarに問題が発生したことがあるため(破損していたため)、春の依存関係にSEBRを使用しようとしています。しかし、私はドキュメントから引用します:

OSGiがあなたにとって重要でない場合は、どちらの場所でも機能しますが、それらの間にはいくつかの長所と短所があります。一般に、プロジェクトにはどちらか一方を選択します。それらを混ぜないでください。EBRアーティファクトは必然的にMavenCentralアーティファクトとは異なる命名規則を使用するため、これは特に重要です。

于 2012-11-11T18:43:01.563 に答える