maven找不到依赖项[dependencyResolutionException]

时间:2015-02-03 10:06:18

标签: maven pom.xml dependency-resolution

pom.xml我有

    <repositories>
        <repository>
            <id>rep</id>
            <name>Repository</name>
            <url>http://artifacts.com/rep</url>
            <releases>
               <enabled>true</enabled>
               <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>com.project.rest</groupId>
            <artifactId>common</artifactId>
            <version>2.0.5</version>
        </dependency>

    </dependencies>

我有这个错误

Downloading: http://artifacts.com/rep/com/project/rest/common/2.0.5/common-2.0.5.pom
[WARNING] The POM for com.project.rest:common:jar:2.0.5 is missing, no dependency information available

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.154s
[INFO] Finished at: Tue Feb 03 06:58:35 BRT 2015
[INFO] Final Memory: 9M/152M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project server: Could not resolve dependencies for project org.server:
server:jar:2.5.1-SNAPSHOT: The following artifacts could not be resolved: com.project.rest:common:jar:2.0.5:
Could not find artifact com.project.rest:common:jar:2.0.5 in rep (http://artifacts.com/rep) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

P.S我隐藏了所有真实的网址和包裹。

基本上它表明它能够下载.pom但它也会显示警告。

问题是什么?

5 个答案:

答案 0 :(得分:2)

第一行&#34;正在下载:...&#34;只说maven试图下载工件。这不是关于成功的陈述。如果maven成功,你将获得另一行以&#34;下载:...&#34;

所以在你的情况下,maven无法下载文件。检查浏览器中记录的URL是否存在以及是否受到保护。

BTW <updatePolicy>always</updatePolicy>对于发布回购非常罕见,因为版本不应再发生变化。

答案 1 :(得分:1)

确保您的存储库配置正确。尝试在您的仓库中搜索 版本com.project.rest:common的{​​{1}}。

这是你自己的项目吗?你建的一些罐子?你确定你把它部署到你的仓库吗?如果它不在您的仓库中,请尝试在本地仓库中搜索它(通常是 .m2 / repository / com / project ...)

答案 2 :(得分:1)

DependencyResolutionException

(来源:Maven Confluence

当Maven无法下载依赖项时,通常会发生此错误。导致此错误的可能原因是:

  1. POM错过了承载工件的<repository>的声明。
  2. 您配置的存储库需要身份验证,Maven无法向服务器提供正确的凭据。在这种情况下,请确保您的${user.home}/.m2/settings.xml包含<server>声明,其<id>与要使用的远程存储库的<id>匹配。有关详细信息,请参阅Maven Settings Reference
  3. 有问题的远程存储库使用SSL,运行Maven的JVM不信任服务器的证书。
  4. 存在阻止Maven访问任何远程存储库的常规网络问题,例如:缺少代理配置。
  5. 您已将Maven配置为执行严格的校验和验证,并且要下载的文件已损坏。
  6. Maven无法将文件保存到本地存储库,有关详细信息,请参阅LocalRepositoryNotAccessibleException
  7. 在Maven 3中,如果您刚下载失败并修复了它(例如将jar上传到存储库),它将缓存失败。要强制刷新,请将-U添加到命令行。
  8. 如果出现与网络相关的一般问题,您还可以参考以下文章:

答案 3 :(得分:0)

您提到的项目并不包含POM,即它不是MAVEN项目。 .m2(查看c驱动器或安装位置)存储库包含所有依赖项文件夹,无论它是否包含所需项目,即com.project.rest。

答案 4 :(得分:0)

就像控制台输出所建议的那样,您可以查看Maven Wiki页面(http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException),以获取有关问题可能出处的更多信息。

提供您提供的信息。我想我们正在研究第一点问题: POM错过了承载工件的的声明。

Maven存储库分为三种类型:本地,中央和远程

在您的情况下,您的本地存储库包含项目特定的工件,而中央存储库则没有。

  1. 本地存储库在您的本地计算机上。当您运行Maven构建时,Maven会自动将所有依赖项jar下载到本地存储库中。
  2. 中央存储库是由社区提供的Web存储库,它包含许多常用的库,可在https://repo1.maven.org/maven2/中找到。
  3. 远程存储库是开发人员自己的自定义存储库,其中包含必需的库或其他项目jar。开发人员使用标签在POM文件中定义这些存储库。

我建议以下内容:

  • 检查存储库标签(如果存储库正确)
  • 检查存储库是否包含您的依赖项标签中指定的工件