2013-12-09 63 views
18

我配置了我的項目以部署到我自己的存儲庫。當我運行mvn deploy時,它看起來像是在工作,但是在下載maven_metadata.xml文件到它上傳罐子後的階段掛起。Maven部署在下載maven_metadata.xml時掛起(如果已存在)

INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ myproject --- 
Uploading: scp://myrepodomain/.../myproject-0.06-2.jar 
Uploaded: scp://myrepodomain/.../myproject-0.06-2.jar (39013 KB at 6234.1 KB/sec) 
Uploading: scp://myrepodomain/.../myproject-0.06-2.pom 
Uploaded: scp://myrepodomain/.../myproject-0.06-2.pom (8 KB at 21.6 KB/sec) 
Downloading: scp://myrepodomain/.../maven-metadata.xml 
320/319 B 
.....here is where it just hangs forever 

如果我刪除服務器上的文件maven-metadata.xml,它工作得很好,只是上載新生成一個。

我還要提到的是我只是用與SCP一個簡單的HTTP服務器,我覺得更大的神器系統是這樣矯枉過正我在做什麼。我無法弄清楚如何調試。任何建議,將不勝感激。

+0

看到bug https://jira.codehaus.org/browse/MDEPLOY-177 –

回答

0

這似乎是一些模糊的錯誤,我無法在Maven 3.0.5中找到引用(在debian測試中默認)。安裝Maven 3.1.1修復了這個問題。

+8

這對我來說使用Maven 3.2.1纔剛剛開始。 –

+0

在Ubuntu上,我用apt-get刪除了3.0.5,然後手動安裝了3.3.3,問題就消失了。 – TimP

+0

apache ssh-Wagon是https://issues.apache.org/jira/browse/WAGON-429的問題。你需要版本2.9!這個bug現在已經超過兩年了!主要的發行版有bug Ubuntu 14.04 LTS與mvn 3.0.5 –

8

我已經設法通過在我的pom.xml中將scp的所有引用交換爲sftp來解決此問題。這種解決方案的優點是不需要任何額外的配置。有關更多信息,請參閱http://jira.codehaus.org/browse/MNG-5605

+0

完美!更改從scp到sftp的協議解決了我的問題。 – Krzysiek

+0

這是最好的答案,因爲它與Maven 3.1.1協同工作,甚至可以連接最新的Maven 3.5.0。 'scp'和'scpexe'爲maven 3.1.1工作,但停止爲更高版本的maven工作。 –

8

隨着OS/X 10.9.3和Maven 3.2.3,我有同樣的問題。

這似乎是在部署期間下載文件時中斷的無人機插件。

我通過以使用系統ssh命令貨車連接器切換到"Maven Wagon SSH External"解決它。

下面我的pom.xml修改:

 <extension> 
      <groupId>org.apache.maven.wagon</groupId> 
      <artifactId>wagon-ssh</artifactId> 
      <version>2.6</version> 
     </extension> 

切換到:

 <extension> 
      <groupId>org.apache.maven.wagon</groupId> 
      <artifactId>wagon-ssh-external</artifactId> 
      <version>2.6</version> 
     </extension> 

和更換

scp://[email protected] 

通過

scpexe://[email protected] 

轉換爲url標記:

<repository> 
     ... 
     <url>scpexe://[email protected]</url> 
     ... 
    </repository> 
+4

升級到更高版本的wagon-ssh(在我的情況2.9)解決了問題! – wau

+1

同樣在這裏,增加版本到2.10固定它。 – Daniel

0

我有這樣的問題。當我嘗試wget這些...maven_metadata.xml網址時,我收到了404響應。

我的解決方案是縮短這些服務器的超時時間(從默認2分鐘到2秒)。

首先,您必須找到此URL的存儲庫的ID。也就是說,如果你堅持從artifactoryonline.org下載,搜索該庫在你的POM:

$ find . -name 'pom*.xml' | xargs grep factoryonline 

轉至發現POM和獲取倉庫ID。 然後編輯您的~/.m2/settings.xml到這樣的事情:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
    https://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <servers> 
      <server> 
        <id>Metamarkets-repository</id> 
        <configuration> 
          <httpConfiguration> 
            <all> 
              <connectionTimeout>2000</connectionTimeout> 
              <readTimeout>2000</readTimeout> 
            </all> 
          </httpConfiguration> 
        </configuration> 
      </server> 
    </servers> 
</settings> 

這將使2秒後下載放棄,讓構建繼續(假設maven_metadata.xml會從別的地方下載)。