我正在使用Linux系统。
我的本地maven repo 目录/Users/username/.m2/repository/
我有以下目录:
com/amazonaws/android/core/amazon-aws-android-core/1.6.1
这意味着目录的完整路径是:
/Users/username/.m2/repository/com/amazonaws/android/core/amazon-aws-android-core/1.6.1
上面的目录,我有文件:
amazon-aws-android-core-1.6.1.jar.lastUpdated
amazon-aws-android-core-1.6.1.pom.lastUpdated
在我的项目中,我的pom.xml
包含:
<dependency>
<groupId>com.amazonaws.android.core</groupId>
<artifactId>amazon-aws-android-core</artifactId>
<version>1.6.1</version>
<type>jar</type>
</dependency>
但是当我运行mvn clean install
时,我总是收到以下错误消息:
The following artifacts could not be resolved: com.amazonaws.android.core:amazon-aws-android-core:jar:1.6.1
为什么我会收到上述错误&amp;如何摆脱它?
答案 0 :(得分:2)
您收到上述错误,因为实际的.jar文件不在您的存储库中。 .lastUpdated文件不是实际的.jar文件,也不是它们的最新更新版本。 .lastUpdated文件只是簿记文件。
例如,让我们创建一个无意义的依赖项:
<dependency>
<groupId>asdfasdf</groupId>
<artifactId>sadffweklsfduasfsdjf</artifactId>
<version>1.0</version>
</dependency>
并在其上运行mvn install
。
Maven然后创建目录~/.m2/repository/asdfasdf/sadffweklsfduasfsdjf/1.0
并使用sadffweklsfduasfsdjf-1.0.jar.lastUpdated
和sadffweklsfduasfsdjf-1.0.pom.lastUpdated
文件填充它。
在其中一个.lastUpdated文件中,您只需找到类似的内容:
1 #NOTE: This is an Aether internal implementation file, its format can be ch anged without prior notice.
2 #Fri Jan 03 09:12:05 IST 2014
3 http\://repo.maven.apache.org/maven2/.lastUpdated=1388733125394
4 http\://repo.maven.apache.org/maven2/.error=
而不是实际的.jar或.pom文件。
要消除此错误,您需要确保Maven实际上能够访问远程存储库并下载您需要的实际Amazon AWS jar。
答案 1 :(得分:1)
.lastUpdated文件是元数据文件,而不是实际的jar和pom。这种情况表明您可能在没有连接到网络的情况下尝试下载这些内容,或者当repo不可用时,现在Maven将不再尝试再次下载这些内容,直到超过一定的时间。您可以将-U开关添加到命令中以强制检查远程存储库上的更新版本。您也可以从本地存储库中删除该工件的文件夹,这也会导致Maven再次尝试下载它。
这里有一个类似的问题: Maven downloads have .lastUpdated as extension 和这里 Maven dependencies in local REPO have .lastUpdated extension
这里有一些关于lastUpdated文件的讨论: http://maven.40175.n5.nabble.com/Maven-3-maven-repositories-and-lastUpdated-td4927537.html