我在项目中添加了一个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和包。)*
有什么问题吗?
6条答案
按热度按时间bq8i3lrv1#
第一行“Downloading:...”只表示maven尝试下载工件。它并不表示成功。如果maven成功,您将得到另一行以“Downloading:...”
因此,在您的情况下,Maven无法下载文件。检查浏览器中记录的URL是否存在,以及是否受保护。
顺便说一句,
<updatePolicy>always</updatePolicy>
对于版本回购是相当不常见的,因为版本不应该再改变了。pftdvrlh2#
x1月0n1x日
当Maven无法下载依赖项时,通常会出现此错误。导致此错误的可能原因有:
<repository>
的声明。1.您配置的资料档案库需要身份验证,而Maven无法向服务器提供正确的凭据。在这种情况下,请确保您的
${user.home}/.m2/settings.xml
包含<server>
声明,该声明的<id>
与要使用的远程资料档案库的<id>
匹配。有关详细信息,请参阅Maven Settings Reference。1.有问题的远程资源库使用SSL,并且运行Maven的JVM不信任服务器的证书。
1.存在一个阻止Maven访问任何远程系统信息库的一般网络问题,例如缺少代理配置。
1.您已将Maven配置为执行严格的校验和验证,但要下载的文件已损坏。
LocalRepositoryNotAccessibleException
。1.在Maven 3中,如果您刚刚下载失败并修复了它(例如,通过将jar上传到存储库),它将缓存失败。要强制刷新,请在命令行中添加
-U
。如果是一般的网络相关问题,您也可以参阅下列文章:
siv3szwd3#
确保您的存储库配置正确。尝试在存储库中搜索
2.0.5
版本的com.project.rest:common
。这是您自己的项目吗?是您构建的某个jar吗?您确定已将其部署到您的存储库吗?如果它不在您的存储库中,请尝试在您的 local 存储库(通常为**.m2/repository**/com/project...)中搜索它
zkure5ic4#
您提到的项目不包含POM,即它不是一个MAVEN项目。.m2(在c驱动器或您安装的位置查看)存储库包含所有依赖项文件夹,无论它是否包含所需的项目,即com.project.rest。
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文件中定义这些资源库
我建议如下:
1yjd4xko6#
如果您使用的是IntelliJ IDE(Jetbrains)并且代码正确,则
选中TOGGLE OFFLINE MODE按钮。如果启用脱机模式,IDE将不允许Maven下载依赖项,并且找不到导致错误的库。
因此,请确保您的项目是在ONLINE模式下构建的。