【问题标题】:Maven build error - The following artifacts could not be resolvedMaven构建错误
【发布时间】:2011-07-10 03:54:17
【问题描述】:

我想用maven搭建一个spring mvc项目,出现如下错误:

The following artifacts could not be resolved: org.aopalliance:com.springsource.org.aopalliance:jar:1.0.0, org.hibernate:hibernate-validator:jar:4.2.0.Beta1: Could not find artifact org.aopalliance:com.springsource.org.aopalliance:jar:1.0.0 in central (http://repo1.maven.org/maven2)

我使用 eclipse 和 m2eclipse 插件。我不知道如何添加本地存储库。而且我发现对于不同版本的eclipse,结果是不同的。有些可以通过,有些失败。我很困惑。

顺便问一下在哪里可以找到m2eclipse中使用的maven版本?

提前致谢。

更新:现在我可以处理hibernate-validator,但是我删除了所有spring mvc依赖,我发现还有很多其他的库依赖于com.springsource.org.aopalliance,

【问题讨论】:

    标签: maven-2 maven maven-3


    【解决方案1】:

    检查您的%.m2\repository\org\aopalliance\com.springsource.org.aopalliance\1.0.0\。 如果里面没有com.springsource.org.aopalliance-1.0.0.jar,自己下载复制到这个文件夹就好了。

    【讨论】:

    • 我知道这个解决方案不能自动移植(如果我搬到新电脑上,我必须重做)。但见鬼,这个答案是真的:) 谢谢
    【解决方案2】:

    由于您使用的是 spring 工件,您可以参考this doc。如果你正在开发 spring 的发布版本,你可以在你的 settings.xml 中添加以下存储库

       <repository>
          <id>com.springsource.repository.maven.release</id>
          <url>http://maven.springframework.org/release/</url>
          <snapshots>
              <enabled>false</enabled>
           </snapshots>
       </repository>
    

    [编辑1:基于评论]

    aopalliance 的 groupId/projectId 似乎表明它在spring enterprise bundle repository 中。此内容可从以下存储库 url 访问。

    <url>http://repository.springsource.com/maven/bundles/release/</url>
    

    至于 hibernate-validator,作为一个 beta 版本,它可能在正常的 repos 中不可用。它可以从

    <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
    

    【讨论】:

    • 谢谢。但是这种方法不起作用,我仍然得到错误:缺少工件org.aopalliance:com.springsource.org.aopalliance:jar:1.0.0:编译,缺少工件org.hibernate: hibernate-validator:jar:4.2.0.Beta1:compile
    • @Tom。你能在代理后面吗?如果是这样,您需要在您的 settings.xml 中添加一个代理部分,其中包含代理信息
    • Raghuram,我没有代理,我没有代理服务器。
    • @Tom。编辑答案以提供几个其他包含依赖项的存储库 url。您可以尝试使用这些而不是之前指定的方法,看看是否有帮助。
    • hibernate 工作的存储库 url。我发现我无法访问repository.springsource.com/maven/bundles/release,所以我认为这就是我出现构建错误的原因。
    【解决方案3】:

    m2eclipse中使用的maven版本可以在Window->Preferences->Maven->Installations中找到

    看起来在您在 settings.xml 或 pom 文件中定义的任何存储库中都找不到该工件。尝试添加sonatype repositories,他们有您正在寻找的工件

    在你的 pom.xml 中,添加:

      <project>
      ...
      <repositories>
        <repository>
          <id>sonatype repo</id>
          <url>https://repository.sonatype.org/content/repositories/central</url>
        </repository>
      </repositories>
      ...
    </project>
    

    但是,最好有自己的存储库管理器(nexus、archiva、...)

    【讨论】:

    • 抱歉,我还是不知道怎么添加仓库,要不要添加/修改settings.xml?
    • pluginRepositories 可能仅适用于插件而不适用于依赖项
    • 无论如何我添加了 Florian F 提供的存储库,但没有任何改变。
    【解决方案4】:

    您应该将“外部”存储库添加到您的 pom.xml:

    <repository>
        <id>com.springsource.repository.bundles.external</id>
        <url>http://repository.springsource.com/maven/bundles/external</url>
    </repository>
    

    我在 pom.xml 中完整的 repositories 标签如下:

    <repositories>
        <repository>
            <id>com.springsource.repository.maven.release</id>
            <url>http://repo.springsource.org/release/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <url>http://repository.springsource.com/maven/bundles/release</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <url>http://repository.springsource.com/maven/bundles/external</url>
        </repository>
    </repositories>
    

    【讨论】:

      猜你喜欢
      • 2021-08-04
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2016-09-27
      相关资源
      最近更新 更多