1

私はMavenの初心者として、自分のローカルのSonartype Nexusで遊んでいます。プロキシとして使用するように Maven のインストールを構成しました。これは、次の依存関係を解決する単純なテスト プロジェクトで正常に動作します。pom.xml

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency> 

次に、 Ivyを 使用して同様のプロジェクトを試しました。

ivy.xml。Ivy は、同じ Nexus サーバーをプロキシとして使用しています ( で構成 ivysettings.xml)

<ivysettings>
    <settings defaultResolver="default"/>
    <property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" />
    <resolvers>
        <chain name="default">
            <ibiblio name="public" m2compatible="true" root="http://localhost:2281/nexus/content/groups/public"/>
        </chain>
    </resolvers>
</ivysettings>

ただし、antを実行すると、解決に失敗しますhibernate-validator-4.2.0-Final

[ivy:retrieve]
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve]          module not found: org.hibernate#com.springsource.org.hibernate.validator;4.2.0.Final
[ivy:retrieve]  ==== public: tried
[ivy:retrieve]    http://localhost:2281/nexus/content/groups/public/org/hibernate/com.springsource.org.hibernate.validat
or/4.2.0.Final/com.springsource.org.hibernate.validator-4.2.0.Final.pom
[ivy:retrieve]    -- artifact org.hibernate#com.springsource.org.hibernate.validator;4.2.0.Final!com.springsource.org.hi
bernate.validator.jar:
[ivy:retrieve]    http://localhost:2281/nexus/content/groups/public/org/hibernate/com.springsource.org.hibernate.validat
or/4.2.0.Final/com.springsource.org.hibernate.validator-4.2.0.Final.jar
[ivy:retrieve]          [NOT FOUND  ] javax.activation#activation;1.0.2!activation.jar (0ms)
[ivy:retrieve]  ==== public: tried
[ivy:retrieve]    http://localhost:2281/nexus/content/groups/public/javax/activation/activation/1.0.2/activation-1.0.2.j
ar
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          ::          UNRESOLVED DEPENDENCIES         ::
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          :: org.hibernate#com.springsource.org.hibernate.validator;4.2.0.Final: not found
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          ::              FAILED DOWNLOADS            ::
[ivy:retrieve]          :: ^ see resolution messages for details  ^ ::
[ivy:retrieve]          ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]          :: javax.activation#activation;1.0.2!activation.jar

SpringSource Enterprise Bundle Repository (http://maven.springframework.org/release/) や JBoss public (https://repository.jboss.org/nexus/content) などのリモート リポジトリを Nexus インストールに追加しようとしました。 /repositories/releases/) しかし、これは役に立ちませんでした。

原則として、Ivy は失敗する前に他の多くの依存関係をフェッチするだけでなく、うまく機能しているようです。

私の質問: 1) Maven が同じ理由で失敗しないのはなぜですか? hibernate-validator はオプションのようなもので、Ivy には Maven として別の解決戦略がありますか?

2)解決しようとするアーティファクト名に興味があります:(org.hibernate#com.springsource.org.hibernate.validator;4.2.0.Final ところで、追加する<dependency org="org.hibernate" name="hibernate-validator" rev="4.2.0.Final" />と機能しますが、Springの場合、アーティファクトが必要com.springsource.org.hibernate.validatorですか?

4

1 に答える 1

1

/nexus/content/groups/publicわかりました、解決策は、すべての新しいリポジトリ (spring、jboss) を、実際には で唯一のリポジトリとして指定されたパブリック グループ リポジトリに割り当てるのを忘れたことですivysettings.xml

于 2012-09-12T14:31:19.360 に答える