2011-09-30 46 views
2

我的問題是「簡單」,但我直到現在還沒找到解決方案:artifactory分類器元數據快照maven 3.0

我有2個項目。

  • 項目A 內置分類(稱爲開發或Pro)特定簡
  • 項目B的幫助與依賴至A(使用分類開發或Pro)

  • 我執行安裝上的一個目標與分類(開發

  • 重新執行與另一分類(

然後我編譯B類項目 安裝目標(我把依賴於A,與分類DEV)

它效果很好。


但是,當我做同樣的artifactory的(目標部署),它doesn't工作 (和庫配置 「獨一無二」)

它doesn't工作因爲artifactory? maven依賴? 正試圖下載 A與分類器dev 最新的時間戳,任何 buildnumber。

但是,這個「邏輯」是錯誤的,因爲最新的時間戳是有效的分類專業!

我讀取本地存儲庫和artifactory存儲庫之間的metadata.xml。有類似的(但不完全一樣)

我錯了什麼? 謝謝你們!

  • Maven的版本:3.03
  • Artifactory的版本:2.3.4.1

回答

5

這可能是由於,在寫這個答案的時候,Artifactory的產生的Maven 2類型的元數據,事實上這與Maven 3生成的新類型不同,它沒有爲每個分類器類型的Artifact指定單獨的「最新版本」。

也就是說,雖然Maven的2元數據指定的最新版本和已知的歷史:

<?xml version="1.0" encoding="UTF-8"?> 
    <metadata> 
     <groupId>org.jfrog.test</groupId> 
     <artifactId>multi1</artifactId> 
     <version>2.1-SNAPSHOT</version> 
     <versioning> 
     <snapshot> 
      <timestamp>20110928.112713</timestamp> 
      <buildNumber>14</buildNumber> 
     </snapshot> 
     <lastUpdated>20110928112718</lastUpdated> 
     </versioning> 
    </metadata> 

的Maven 3指定每個工件類型和分類器的最新版本:

<?xml version="1.0" encoding="UTF-8"?> 
<metadata> 
    <groupId>org.jfrog.test</groupId> 
    <artifactId>multi1</artifactId> 
    <version>2.1-SNAPSHOT</version> 
    <versioning> 
    <snapshot> 
     <timestamp>20110928.112713</timestamp> 
     <buildNumber>14</buildNumber> 
    </snapshot> 
    <lastUpdated>20110928112718</lastUpdated> 
    <snapshotVersions> 
     <snapshotVersion> 
     <classifier>tests</classifier> 
     <extension>jar</extension> 
     <value>2.1-20110928.112713-14</value> 
     <updated>20110928112713</updated> 
     </snapshotVersion> 
     <snapshotVersion> 
     <extension>pom</extension> 
     <value>2.1-20110928.112713-14</value> 
     <updated>20110928112713</updated> 
     </snapshotVersion> 
     ... 
    </snapshotVersions> 
    </versioning> 
</metadata> 

支持Maven的3元目前Artifactory的下一個版本(2.3.5)目前爲planned
在此之前,我只能建議您生成具有不同工件ID的工件。

+0

感謝您的快速回答。 – user973098

+0

我會等待下一個版本的artifactory。理解RTFACT-3794和這個問題之間的關係並不容易(當然對我來說)。 – user973098