Maven mvn包失败,所需工件丢失,即使它存在于我的远程存储库中
我试图在我的Maven项目上运行mvn clean软件包,但失败了,消息如下: 工件网的“缺少必需的工件”。ezswitch:ResourcesComponent:jar:0.0.14 我已经将我的settings.xml配置为包含我的远程存储库,如果我在浏览器上导航,我实际上可以在我的存储库中找到这个Jar,但Maven不知何故无法找到 我已经检查了我正在运行的Maven版本是否是我编辑的settings.xml文件生效的版本,因为如果我禁用在那里配置的概要文件,Maven将失败,并显示另一条消息 我正在MAC OS X Lion上使用Maven 2.2.1 以下是my settings.xml:Maven mvn包失败,所需工件丢失,即使它存在于我的远程存储库中,maven,maven-2,repository,artifact,Maven,Maven 2,Repository,Artifact,我试图在我的Maven项目上运行mvn clean软件包,但失败了,消息如下: 工件网的“缺少必需的工件”。ezswitch:ResourcesComponent:jar:0.0.14 我已经将我的settings.xml配置为包含我的远程存储库,如果我在浏览器上导航,我实际上可以在我的存储库中找到这个Jar,但Maven不知何故无法找到 我已经检查了我正在运行的Maven版本是否是我编辑的settings.xml文件生效的版本,因为如果我禁用在那里配置的概要文件,Maven将失败,并显示另一条
<localRepository>/Users/hordine/.m2/repository</localRepository>
<servers>
<server>
<id>LiquixRepository</id>
<username>henrique</username>
<password>xxxxx</password>
<configuration>
<httpConfiguration>
<put>
<params>
<param>
<name>http.authentication.preemptive</name>
<value>%b,true</value>
</param>
</params>
</put>
</httpConfiguration>
</configuration>
</server>
<server>
<id>dev.liquix.eu</id>
<username>henrique</username>
<password>xxxxx</password>
</server>
<server>
<id>ezpay-dev.liquix.eu</id>
<username>henrique</username>
<password>xxxxx</password>
</server>
</servers>
<profiles>
<profile>
<id>ezswitch</id>
<properties>
<tomcat.home>/System/Library/tomcat</tomcat.home>
<subversion.user>henrique</subversion.user>
<subversion.password>xxxxx</subversion.password>
</properties>
<activation>
<jdk>1.6</jdk>
</activation>
<repositories>
<repository>
<id>central</id>
<name>EzSwitch Cache</name>
<layout>default</layout>
<url>http://ezpay-dev.liquix.eu:9998/repository</url>
</repository>
<repository>
<id>central_maven1</id>
<name>EzSwitch Cache2</name>
<layout>legacy</layout>
<url>http://ezpay-dev.liquix.eu:9998/repository</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>EZswitch</name>
<url>http://ezpay-dev.liquix.eu:9998/repository</url>
<snapshots>
</snapshots>
<releases>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>ezswitch</activeProfile>
</activeProfiles>
但如果我通过浏览器导航到该位置,我可以在以下位置看到工件:
如果有任何帮助,我将不胜感激。提前谢谢
Henrique Ordine如果您还没有,请尝试:
mvn -U clean package
除了更新所有快照版本之外,如果自Maven每天一次的快照检查以来,这些快照版本都是新部署到存储库中的,那么这也将迫使Maven更新其其他缓存的repo解决方案,例如404 显然,错误消息“缺少必需的工件”隐藏了实际的根本原因,这在消息中不可见。在(-X选项)上运行带有调试消息的Maven将打印出额外的信息,这些信息可以更详细地了解问题所在
为了将来参考,这次错误是
[WARNING] Unable to get resource 'net.ezswitch:ResourcesComponent:pom:0.0.14' from repository central (ezpay-dev.liquix.eu:9998/repository):
Specified destination directory cannot be created: /Users/hordine/.m2/repository/net/ezswitch/ResourcesComponent/0.0.14
如果没有调试标志,它将不可见。只是出现了这个问题。在我的Mac上经历了这么多的解决方案。最后改变了我的想法 ~/.m2/settings.xml 更改为:
<localRepository>${USER.HOME}/.m2/repository</localRepository>
缺少的工件是发布版本,而不是快照。-U不只是用于快照检查吗?-U刷新快照,但不只是刷新快照。Maven缓存解决故障以避免重击服务器。-U强制它重试失败的下载。@Chris Beach感谢您的努力。我试过了,但还是失败了,出现了一个缺少工件的错误。看起来像是某个自定义组件。您是否确定组件具有正确的pom,并且使用了正确的包装?它曾经在任何计算机上工作过吗?它是如何安装的?maven是否连接到服务器?您是否尝试过在调试模式下运行maven以查看任何详细信息?是的,它与服务器具有连接,否则它将失败并出现其他异常?它在我所有同事的电脑上都能工作。POM和Jar文件就在那里。明天我会发布POM文件上的内容。在调试模式下是什么意思?使用-e选项?好的,如果它对其他人有效,那么肯定会排除任何POM问题。我的意思是-X选项。太好了!当我打开-X时,会收到警告:[警告]无法从repository central()获取资源'net.ezswitch:ResourcesComponent:pom:0.0.14':无法创建指定的目标目录:/Users/hordine/.m2/repository/net/ezswitch/ResourcesComponent/0该组件的“ResourceDoesNotExistException:无法在存储库中找到资源”。我已将本地存储库的权限更改为对所有人进行读写,并且不再出现此错误。非常感谢,Eis。是否要创建一个答案,以便我将其选为正确答案?
<localRepository>${USER.HOME}/.m2/repository</localRepository>
<localRepository>${env.HOME}/.m2/repository</localRepository>
export