【问题标题】:How do I resolve "Failed to collect dependencies" error in Maven?如何解决 Maven 中的“无法收集依赖项”错误?
【发布时间】:2012-11-18 19:52:41
【问题描述】:

我在我的项目中使用 Maven 3。它已经搁置了一段时间,但我们最近又开始研究它。

当我尝试构建它时,我收到以下错误:

[错误] 未能执行项目 tahrir 的目标:
无法解析项目 tahrirproject:tahrir:jar:0.0.1-SNAPSHOT:
的依赖项 无法收集 [com.google.code.gson:gson:jar:2.2.2(编译)、org.apache.commons:commons-math3:jar:3.0(编译)、args4j:args4j:jar:2.0 的依赖项。 16(编译)、org.testng:testng:jar:5.14(测试)、bouncycastle:bcprov-jdk16:jar:140(编译)、com.google.guava:guava:jar:13.0(编译)、ch.qos。 logback:logback-classic:jar:0.9.28 (编译), com.miglayout:miglayout:jar:3.7.4 (编译), org.datanucleus:datanucleus-db4o:jar:3.0.0-m3 (编译), joda -time:joda-time:jar:1.6.2 (编译), com.google.inject:guice:jar:3.0 (编译), com.seaglasslookandfeel:seaglasslookandfeel:jar:0.2 (编译), xom:xom:jar: 1.2.5 (编译), commons-codec:commons-codec:jar:1.6 (编译), org.apache.commons:commons-lang3:jar:3.1 (编译)]:
无法读取 db4o:db4o:jar:7.12.126.14142-all-java5 的工件描述符:无法从/向 local.repository 传输工件 db4o:db4o:pom:7.12.126.14142-all-java5(文件:../. ./local.repository/trunk):
没有连接器可用于使用可用工厂 WagonRepositoryConnectorFactory -> [帮助 1]

访问 legacy 类型的存储库 local.repository(文件:../../local.repository/trunk)

这是我的 pom.xml 文件:https://github.com/sanity/tahrir/blob/master/pom.xml

我已经看到这可能与尝试从 Maven 3 访问 Maven 1 或 2 存储库有关。如果这是我宁愿只使用 Maven 3 存储库的问题,但目前我的所有依赖项指定应该在默认的 Maven 存储库中,所以我不确定问题是什么。

任何关于如何正确“修复”我们的 pom.xml 文件的具体建议将不胜感激。

【问题讨论】:

  • 消息 file:../../local.repository/trunk): 没有连接器可用于访问存储库 local.repository (file:../../local.repositor 看起来有点奇怪。你是如何配置 maven 的?settings.xml 文件?为什么你在 pom 中配置了存储库?试试 mvn clean package。如果失败,请尝试删除完成本地存储库并重试。
  • @khmarbaise,我实际上没有 settings.xml 文件,所以我假设它只使用默认值。我尝试删除我的本地存储库,但它没有解决问题。还有其他想法吗?
  • 在深入研究之后我发现了问题。 pom 中的给定存储库不包含给定坐标下的工件。它们必须是 com.db4o 等。此外,给定的版本不适合存储库。

标签: maven maven-3


【解决方案1】:

在检查包含工件但在不同坐标下的存储库之后,这意味着您必须像这样更改给定的 pom:

<repositories>
    <repository>
      <id>source.db4o</id>
      <url>http://source.db4o.com/maven</url>
    </repository>
  </repositories>
  ...
  <dependencies>
    <dependency>
      <groupId>com.db4o</groupId>
      <artifactId>db4o-full-java5</artifactId>
      <version>8.1-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
</project>

如果您查看存储库,您会发现问题。但我建议不要使用 SNAPSHOT 更好用的文件版本。

【讨论】:

    【解决方案2】:

    我们遇到了类似的问题,并通过添加 wagon 扩展来解决它:

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>
        ....
    </build>
    

    【讨论】:

      猜你喜欢
      • 2011-11-27
      • 2012-01-12
      • 2017-07-06
      • 2022-06-19
      • 2015-04-25
      • 2017-01-06
      • 2012-01-26
      • 1970-01-01
      • 2014-09-05
      相关资源
      最近更新 更多