Maven无法找到依赖项[dependencyResolution异常]

tjvv9vkg  于 2022-11-22  发布在  Maven
关注(0)|答案(6)|浏览(273)

我在项目中添加了一个Maven依赖项,我的项目在本地编译,而不在服务器上编译。它无法解析新添加的依赖项。
这是我的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
  • (我隐藏了所有真实的URL和包。)*

有什么问题吗?

bq8i3lrv

bq8i3lrv1#

第一行“Downloading:...”只表示maven尝试下载工件。它并不表示成功。如果maven成功,您将得到另一行以“Downloading:...”
因此,在您的情况下,Maven无法下载文件。检查浏览器中记录的URL是否存在,以及是否受保护。
顺便说一句,<updatePolicy>always</updatePolicy>对于版本回购是相当不常见的,因为版本不应该再改变了。

pftdvrlh

pftdvrlh2#

x1月0n1x日

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

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

siv3szwd3#

确保您的存储库配置正确。尝试在存储库中搜索2.0.5版本的com.project.rest:common
这是您自己的项目吗?是您构建的某个jar吗?您确定已将其部署到您的存储库吗?如果它不在您的存储库中,请尝试在您的 local 存储库(通常为**.m2/repository**/com/project...)中搜索它

zkure5ic

zkure5ic4#

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

6yt4nkrj

6yt4nkrj5#

正如控制台输出所建议的那样,您可以查看Maven Wiki页面(http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException)以了解有关问题可能出在哪里的更多信息。
根据您提供的信息,我想我们正在关注第一个问题:POM遗漏装载成品之的宣告。
Maven资源库有三种类型:本地、中央和远程
在您的情况下,本地存储库包含项目特定的工件,但中央存储库不包含。
1.本地资源库位于本地计算机上。运行Maven构建时,Maven会自动将所有依赖关系jar下载到本地资源库中。
1.中央存储库是由社区提供的Web存储库,它包含许多常用库,可在此处找到https://repo1.maven.org/maven2/
1.远程资源库是开发人员自己自定义资源库,包含所需库或其他项目jar开发人员使用标记在POM文件中定义这些资源库
我建议如下:

  • 如果存储库正确,请检查存储库标记
  • 检查存储库是否包含在依赖项标记中指定的工件
1yjd4xko

1yjd4xko6#

如果您使用的是IntelliJ IDE(Jetbrains)并且代码正确,则
选中TOGGLE OFFLINE MODE按钮。如果启用脱机模式,IDE将不允许Maven下载依赖项,并且找不到导致错误的库。
因此,请确保您的项目是在ONLINE模式下构建的。

相关问题