Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven mvn包失败,所需工件丢失,即使它存在于我的远程存储库中_Maven_Maven 2_Repository_Artifact - Fatal编程技术网

Maven mvn包失败,所需工件丢失,即使它存在于我的远程存储库中

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将失败,并显示另一条

我试图在我的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:

<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