2013-07-12 60 views
0

我正在從Maven 2遷移到Maven 3.我故意從消息和設置中刪除了主機和端口。Maven 3主機如何看起來與Maven 2不同?

Maven 2目前可以正常使用我們在防火牆後面設置的Artifactory中央存儲庫。當我切換到使用Maven 3它無法下載與該錯誤消息的插件:

[ERROR]插件org.apache.maven.plugins:行家安裝-插件:2.3.1或 一個其依賴關係無法解析:無法讀取組織的工件描述符 。 apache.maven.plugins:maven-install-plugin:jar:2.3.1:不能 轉移神器 org.apache.maven.plugins:maven-install-plugin:pom:2.3.1從/到 central( http:/ /:/ artifactory/plugins-release):Access denied to: http://:/artifactory/plugins-release/org/apache/maven/plugins/maven-install-plugin/2.3.1/maven -install-plugin-2.3.1.pom ,ReasonPhrase:禁止。

這裏是我的設置:

<?xml version="1.0" encoding="UTF-8"?> 
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<proxies> 
    <proxy> 
     <id>andy</id> 
     <active>true</active> 
     <protocol>http</protocol> 
     <host>proxyip</host> 
     <port>80</port> 
     <username>user</username> 
     <password>password</password> 
     <nonProxyHosts>host</nonProxyHosts> 
    </proxy> 
    </proxies> 
     <servers> 
     <server> 
      <username>user</username> 
      <password>password</password> 
      <id>central</id> 
     </server> 
     <server> 
     <username>user</username> 
     <password>password</password> 
     <id>snapshots</id> 
    </server> 
    </servers> 
    <profiles> 
    <profile> 
     <repositories> 
     <repository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>libs-release</name> 
      <url>http://<host>:<port>/artifactory/libs-release</url> 
     </repository> 
     <repository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>libs-snapshot</name> 
      <url>http://<host>:<port>/artifactory/libs-snapshot</url> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
      <id>central</id> 
      <name>plugins-release</name> 
      <url>http://<host>:<port>/artifactory/plugins-release</url> 
     </pluginRepository> 
     <pluginRepository> 
      <snapshots /> 
      <id>snapshots</id> 
      <name>plugins-snapshot</name> 
      <url>http://<host>:<port>/artifactory/plugins-snapshot</url> 
     </pluginRepository> 
     </pluginRepositories> 
     <id>artifactory</id> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>artifactory</activeProfile> 
    </activeProfiles> 
</settings> 

我已簽了正確的插件和版本artifactory的存在,這似乎是一個訪問問題。在配置需要更新的Maven 2和Maven 3之間有什麼變化?

+0

我發現這是由於Maven 3試圖通過代理而不是本地網絡來查找主機而導致的。這意味着問題就變成了,Maven 3主機如何與Maven 2查找不同的內容? –

+0

host< - 這個標籤使用代理停止它,我把它放在停止maven 3主機查找代理 –

回答

0

我通過重新下載並刷新我的Maven 3安裝來解決了這個問題。安裝肯定有問題。

0

配置中存在拼寫錯誤(可能是settings.xml或POM文件):http://:/artifactory/不是有效的URL,請改爲使用http://artifactory/

編輯如果URL在瀏覽器中有效,那麼Maven無權訪問。

什麼錯誤消息說:Maven試圖下載文件和服務器迴應HTTP status 403 (Forbidden)。由於它可以與網絡瀏覽器一起工作,因此settings.xml和Artifactory服務器上的權限肯定是一個問題。

我曾經遇到過與Nexus類似的問題;它被配置爲拒絕訪問某些軟件包。

檢查存儲庫服務器的日誌文件。您還可以嘗試刪除settings.xml中的任何<server>條目 - 瀏覽器也會在未登錄的情況下連接。並且(當然)確保用戶名和密碼正確。

+0

我拿出主機名和端口來保護公司ID。我將錯誤消息中的鏈接複製並粘貼到互聯網瀏覽器中,並且它可以正常工作(開始下載pom)。 –

+0

感謝您的更新答案! 相同的設置與Maven 2一起工作,這表明它不能成爲密碼問題,我刪除了服務器定義,仍然有同樣的問題。 –

+0

我看了一下服務器日誌,它看起來像maven 3永遠不會到達服務器,所以這是網絡或主機的決心,這是失敗的。我將嘗試安裝artifactory的本地副本,以查看是否可以解決問題。 –

0

您在機器和Intranet上的Artifactory服務器之間定義了一個代理。通常情況下,這不是正確的設置。 Artifactory可能需要一個代理才能訪問互聯網上的服務器(遠程存儲庫),但maven可能必須訪問Artifactory而無需代理服務器。