2013-05-27 41 views
3

我試圖安裝部署到本地資源庫:Maven。庫認證

- settings.xml中 -

<server> 
    <id>myrepo</id> 
    <username>deployer</username> 
    <password>123456</password> 
</server> 

- pom.xml的---

<repositories> 
    <repository> 
     <id>myrepo</id> 
     <url>http://myserver.com/artifactory/libs-release-local</url> 
     <releases> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
      <updatePolicy>always</updatePolicy> 
     </snapshots> 
    </repository> 
</repositories> 

當我執行「MVN部署「我得到錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.4: 
deploy (default-deploy) on project xxx: Failed to deploy artifacts: Co 
uld not transfer artifact xxx:xxx:war:0.1-20130527.121430-3 from/to myserver.com 
(http://myserver.com:8083/artifactory/libs-snapshot-local): Failed to transfer file: 
http://myserver.com:8083/artifactory/libs-snapshot-local/xxx/0.1-SNAPSHOT 
/xxx-0.1-20130527.121430-3.war. Return code is: 401 

Artifactory log:

2013-05-27 16:14:38,158 [DENIED DEPLOY] libs-snapshot-local:xxx/0.1-SNAPSHOT 
/xxx-0.1-20130527.121430-3.pom for anonymous/192.168.6.36. 

如果我將服務器/存儲庫ID更改爲「myserver.com」 - 部署WORK! 但它不適合我,因爲這不工作插件更新日誌與svn在myserver.com

我試圖添加標籤「profile」和「鏡像」到server.xml和「distributionManagement」到pom.xml - 獲取同樣的錯誤

服務器/存儲庫ID必須只命名爲我的服務器?

UPDATE1:

予移除的pom.xml標籤 '存儲庫' 和添加標籤 'distributionManagment':

--- --- pom.xml的

<distributionManagement> 
    <repository> 
     <id>myrepo</id> 
     <name>myrepo</name> 
     <url>http://myserver.com/artifactory/libs-release-local</url> 
    </repository> 
    <snapshotRepository> 
     <id>myrepo</id> 
     <name>myrepo</name> 
     <url>http://myserver.com/artifactory/libs-snapshots-local</url> 
     <uniqueVersion>false</uniqueVersion> 
    </snapshotRepository> 
</distributionManagement> 

( server.xml沒有改變) - 得到相同的錯誤「無法部署...」

UPDATE2:

嘗試...

--- server.xml中---

<profiles> 
    <profile> 
     <id>artifactory</id> 
     <repositories> 
      <repository> 
       <snapshots> 
        <enabled>false</enabled> 
       </snapshots> 
       <id>central</id> 
       <name>libs-release</name> 
       <url>http://myserver.com/artifactory/libs-release-local</url> 
      </repository> 
      <repository> 
       <snapshots /> 
       <id>snapshots</id> 
       <name>libs-snapshot</name> 
       <url>http://myserver.com/artifactory/libs-snapshot-local</url> 
      </repository> 
     </repositories> 
    </profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>artifactory</activeProfile> 
</activeProfiles> 

<server> 
    <id>snapshots</id> 
    <username>deployer</username> 
    <password>123456</password> 
</server> 
<server> 
    <id>central</id> 
    <username>deployer</username> 
    <password>123456</password> 
</server> 

--- --- pom.xml的

<distributionManagement> 
    <repository> 
     <id>central</id> 
     <name>Internal Releases</name> 
     <url>http://myserver.com/artifactory/libs-release-local</url> 
    </repository> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <name>Internal Snapshots</name> 
     <url>http://myserver.com/artifactory/libs-snapshots-local</url> 
     <uniqueVersion>false</uniqueVersion> 
    </snapshotRepository> 
</distributionManagement> 

執行 'MVN部署' - 再次錯誤:(

Failed to deploy artifacts: Could not transfer artifact xxx:xxx:war:0.1-20130528.050526-1 from/to snapshots (http://myserver.com/artifactory/libs-snapshots-local) 

回答

2

'存儲庫'標籤是用於解決問題,而不是部署。我推測'distributionManagment'標記下的存儲庫id是'myserver.com',這就是它與settings.xml中的服務器聲明相匹配的原因。

+2

還有一個唯一版本false,它在maven 3中不受支持。 –