Maven – 缺少神器

我刚把我的项目从windows移到linux ubuntu。 从存储库中提取文件后,发现每个pom.xml文件都包含错误。 甚至没有解决一个dependency injection。

我正在使用Spring Tool Suite Eclipse扩展并已下载maven2。

可能导致什么? 谢谢。

编辑:在控制台中输入“mvn clean install -U”并物理地下载几个jar子后,我设法将问题减少到只有一个pom.xml,但它仍然指向文件中的错误,这在Windows中是正确的。

有我的pom.xml:

 4.0.0 id artifact 0.0.1-SNAPSHOT jar name  UTF-8 1.7 3.2.2.RELEASE 1.7.2 1.0.7    java.net2 Repository hosting the jee6 artifacts http://download.java.net/maven/2   sonatype-oss-repository https://oss.sonatype.org/content/groups/public/  true   true       org.springframework spring-context ${org.springframework-version}    commons-logging commons-logging     org.springframework spring-jms 3.2.2.RELEASE   javax.jms javax.jms-api 2.0    org.slf4j slf4j-api ${org.slf4j-version}   org.slf4j jcl-over-slf4j ${org.slf4j-version} runtime   ch.qos.logback logback-classic ${ch.qos.logback-version}   org.mockito mockito-all 1.9.0 test   junit junit 4.8.2 test   

我收到的错误是:

  1. ArtifactDescriptorException:无法读取ch.qos.logback的工件描述符:logback-classic:jar:1.0.7:ArtifactResolutionException:无法从http://下载传输ch.qos.logback:logback-classic:pom:1.0.7 .java.net / maven / 2缓存在本地存储库中,在java.net2的更新间隔过去或强制更新之前,不会重新尝试解析。 原始错误:无法传输工件ch.qos.logback:logback-classic:pom:1.0.7 from / to java.net2( http://download.java.net/maven/2 ):操作已取消。

  2. 缺失神器aopalliance:aopalliance:jar:1.0

  3. 资源的父级:/ home / user / workspace / artifact / name / target / classes / META-INF标记为只读。

  4. 容器’Maven Dependencies’引用非现有库’/home/user/.m2/repository/org/springframework/spring-context/3.2.2.RELEASE/spring-context-3.2.2.RELEASE.jar’

对于少数情况,每一次重复。

好的,所以你刚刚从一个操作系统转移到另一个操作系统……

很有可能,Maven设置不同,您只是忘记将一些存储库配置等移动到新位置。

请检查全局Maven settings.xml或用户特定的:Linux上的〜/ .m2 / settings.xml和Windows上的C:\ User \ [用户名] \ 。m2 \ settings.xml

你可能会发现一些有趣的东西。

修复设置后(如果是原因),我建议运行Maven依赖插件目标’purge-loca-repository’,从本地Maven存储库中删除项目的依赖项,并从头开始重新解析它们:

 mvn dependency:purge-local-repository 

关于aopalliance-1.0 artifact – >我还没有在java.net2 / sonatype存储库中找到它,所以请尝试Maven Central来解决它:

  central Maven Central http://repo1.maven.org/maven2  

祝好运!

我添加了这个,它解决了我的问题。

   com.sun.jersey jersey-server 1.8  

与maven迁移相关的常见原因很少

  • 您的项目由存储在PC maven存储库缓存中的许多内部依赖项(由您自己/同事创建的工件)组成,而不是在共享内部存储库中。 当您迁移到新PC时,它不再能够解决这些问题
  • 您的公司有一个内部maven存储库(例如:nexus),并且您的项目pom.xml未配置为搜索此存储库
  • 您的项目是一个多模块,它没有设置得非常整齐,因此必须首先在本地仓库中安装dependecy map中的最顶层工件,然后其他人才能将其拉出来
  • 您的新pc存储库使用不同的maven版本/ jdk版本组合

您的pc本地仓库通常位于〜/ .m2 / repository

如果您使用Cntlm作为autetification代理,请在Windows任务管理器中检查它是否处于活动状态:

cntlm.exe

如果没有,请尝试在cmd窗口上执行:

 call \path_to_your_cntlm_folder\Cntlm\cntlm.exe -c \path_to_your_cntlm_folder\Cntlm\cntlm.ini