首页 文章

常 Spring 藤无法解决依赖关系,而它适用于maven

提问于
浏览
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

我已经尝试在Nexus安装中添加更多远程存储库,例如SpringSource Enterprise Bundle Repository(http://maven.springframework.org/release/)或JBoss public(https://repository.jboss.org/nexus/content) / 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

1 回答

  • 1

    好的,解决方案是我错过了将所有新存储库(spring,jboss)分配给公共组存储库 /nexus/content/groups/public ,它实际上仅作为 ivysettings.xml 中的存储库提供 .

相关问题