2

org.springframework.wspring-ws を maven プロジェクトの依存関係として使用しようとすると、次のようになります。

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws</artifactId>
    <version>1.5.8</version>
</dependency>

見つかりません。レポを見ると、pom と jar がありますが、jar の名前には -all が含まれていますspring-ws-1.5.8-all.jar

私の質問: まず、これを maven pom の依存関係として使用するにはどうすればよいですか? 次に、なぜこのファイルはこのような名前になっているのでしょうか?

4

3 に答える 3

5

あなたはこれを行うことができます:

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws</artifactId>
    <version>1.5.8</version>
    <classifier>all</classifier>
</dependency>

なぜその分類子があるのか​​ わかりません。このライブラリには他に分類子がないように見えるので、実際には意味がありません。現在、このライブラリの新しいバージョンがあるようです: http://mvnrepository.com/artifact/org.springframework.ws

そして、彼らは物事を多少再配置したように見えるので、分類子は最新バージョンではかなり冗長です.

于 2012-09-18T01:24:08.417 に答える
3

すでに受け入れられた回答がありますが、これについて追加情報を提供したいと思います。受け入れられた回答は、間違っている可能性があるものを提供しているためです。

spring-ws-ver-all を依存関係として使用しないでください。Maven の世界では、代わりに実際のアーティファクトを依存関係として使用する必要があります (例: spring-ws-core など)。

このような uber jar を依存関係として使用しない理由の 1 つは、依存関係の解決で問題が発生する可能性があることです。

たとえば、A と B の 2 つのアーティファクトに依存しているとします。A は spring-ws-core バージョン 1.0 に依存しており、B は spring-ws-core バージョン 1.1 に依存しています。通常、Maven はクラスパスに spring-ws-core のバージョンを 1 つだけ持つように解決します。

ただし、A が spring-ws-all (uber jar) に依存している場合、Maven はそれが spring-ws-all であり、spring-ws-core が競合していることを知る方法がなく、おそらく問題が発生する可能性があります。 spring-ws 1.0 (spring-ws-all から) と 1.1 (spring-ws-core から) の両方のクラスがあります。

于 2012-09-18T04:08:22.280 に答える
0

これをMavenPomの依存関係として使用するにはどうすればよいですか?

Mavenローカルリポジトリ~/.m2/repository/org/springframework/ws/spring-ws/1.5.8に移動し、jarファイル名をに変更しますspring-ws-1.5.8.jar Lithiumの回答に記載されている構成を使用するか、このオールインワンjarの代わりにスタンドアロンモジュールjarのspring-ws-core、spring-ws-securityなどを使用してください。

このファイルの名前がこのようになっているのはなぜですか?

ソースコードspring-ws/tags / spring-ws-1.5.8を確認してください。これは、1つのアセンブリ記述子(src / assembly / all.xml)を使用して最終リリースをビルドするmaven-assembly-plugin(pom.xml行519 )を使用します。 、<id> all</id>は分類子としてpom.version1.5.8に追加されます。

私はこれを彼らのビルドスクリプトの間違いだと思います。

于 2012-09-17T22:50:52.223 に答える