2013-07-14 102 views
4

我剛剛將我的項目從windows移到linux ubuntu。在從存儲庫中提取文件後,發現每個pom.xml文件都包含錯誤。沒有一個依賴注入沒有解決。Maven - 丟失神器

我使用Spring Tool Suite Eclipse擴展並且下載了maven2。

這可能是什麼原因造成的?謝謝。

編輯︰在控制檯中輸入「mvn乾淨安裝-U」和物理下載幾個罐子我已經設法減少問題,只是一個pom.xml,但它仍然指出在Windows中正確的文件中的錯誤。

還有就是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>id</groupId> 
<artifactId>artifact</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>name</name> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java-version>1.7</java-version> 
    <org.springframework-version>3.2.2.RELEASE</org.springframework-version> 
    <org.slf4j-version>1.7.2</org.slf4j-version> 
    <ch.qos.logback-version>1.0.7</ch.qos.logback-version> 
</properties> 

<repositories> 
    <repository> 
     <id>java.net2</id> 
     <name>Repository hosting the jee6 artifacts</name> 
     <url>http://download.java.net/maven/2</url> 
    </repository> 
    <repository> 
     <id>sonatype-oss-repository</id> 
     <url>https://oss.sonatype.org/content/groups/public/</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
</repositories> 

<dependencies> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
      <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jms</artifactId> 
     <version>3.2.2.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.jms</groupId> 
     <artifactId>javax.jms-api</artifactId> 
     <version>2.0</version> 
    </dependency> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>${ch.qos.logback-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.9.0</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

,我收到的錯誤是:

  1. ArtifactDescriptorException:無法讀取ch.qos.logback神器描述:的logback -classic:jar:1.0.7:ArtifactResolutionException:未能將ch.qos.logback:logback-classic:pom:1.0.7從http://download.java.net/maven/2緩存到本地存儲庫,解析不會直到java.net2的更新時間間隔過去或更新被強制爲止。原始錯誤:無法傳輸工件ch.qos.logback:logback-classic:從/到java.net2的pom:1.0.7(http://download.java.net/maven/2):操作被取消。

  2. 缺少神器aopalliance:aopalliance:罐子:1.0

  3. 父資源的:/ home/user中/工作區/神器/名/目標/班/ META-INF被標記爲只讀。

  4. 容器'Maven Dependencies'引用非現有的庫'/home/user/.m2/repository/org/springframework/spring-context/3.2.2.RELEASE/spring-context-3.2.2.RELEASE。罐'

這些重複中的每一個重複少數情況下。

+0

有沒有機會發布錯誤? –

+0

解析該pom時得到的錯誤是什麼?或者它是文件的內容?什麼是在POM文件呢?一些html錯誤頁面?通常這與代理/鏡像配置有關。當轉移到新系統時,在maven central上遇到糟糕的一天是非常不吉利的...... – wemu

+0

您是否設法解決這個問題?我有完全一樣的問題。贏得7到Ubuntu 12.10。 – Mukus

回答

1

有相關的Maven遷移幾個常見原因

  • 你的項目包括存儲在PC上的Maven倉庫緩存,在一個共享的內部倉庫反對許多內部的依賴關係(/是你自己創建的神器同事)的。當你遷移到新的PC時,它不再能夠解決這些問題
  • 你的公司有一個內部maven倉庫(例如:nexus),你的項目pom.xml沒有配置爲搜索這個倉庫
  • 你的項目是一個多模塊,設置不很整齊,使得的關係是不圖最上面的神器必須首先安裝在您的本地回購之前,其他人可以把它
  • 新電腦的存儲庫使用不同的Maven版本/ JDK版本組合

您的電腦本地回購通常位於〜/ .m2/repository

3

好的,你剛剛從一個操作系統移動到另一個...

有一個很大的機會,Maven設置是不同的,你只是忘了把一些存儲庫配置等移動到新的地方。在Windows \用戶\ [用戶名] \ 2 \ settings.xml中:

請查看全球的Maven的settings.xml或特定於用戶: 〜/ .m2目錄/ Linux上的settings.xmlÇ。

有機會,你會發現一些有趣的事情。從頭

固定設置(如果它的原因),我會建議運行Maven依賴插件目標「吹掃LOCA-庫」從你的本地倉庫和拆卸項目的依賴關係之後再解決這些問題:

mvn dependency:purge-local-repository 

關於aopalliance-1.0神器 - >我還沒有發現它在java.net2/Sonatype的倉庫, 所以請儘量Maven的中央來解決它:

<repository> 
    <id>central</id> 
    <name>Maven Central</name> 
    <url>http://repo1.maven.org/maven2</url> 
</repository> 

祝您好運!

0

如果使用Cntlm作爲autetification代理,檢查它是否在您的Windows任務管理器中活着:

cntlm.exe

如果沒有,嘗試在cmd窗口執行:

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

我加了這個,它解決了我的問題。

<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server --> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>1.8</version> 
</dependency>