2010-08-17 68 views
0

所以我有我的Maven構建部署Java5和Java6版本到我的快照倉庫(Nexus)。我使用構建配置文件和分類器來做到這一點。事情的Maven方面都很好。分類器不能在Maven的快照倉庫中工作

但是,如果我嘗試從我的基於IVY的項目中解析Java5依賴項,那麼如果最近的Maven部署是針對Java6配置文件/分類器的話,它將不起作用。我想這是因爲maven-metadata.xml中的時間戳選擇了Java6版本。如果最近的部署是針對Java5的,它確實有效。

這是解析:

<ibiblio name="snapshot-repo-name" 
       m2compatible="true" 
       root="snapshot-repo-root" 
       pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" 
       usepoms="true" 
       checkmodified="true" 
       changingPattern=".*SNAPSHOT"/> 

依賴的部署的Java6因此打破IVY構建的應用程序的構建。

回答

1

的解決辦法是,以紀念Maven的快照作爲<distributionManagement/>元素中的非唯一版本。也就是說,Maven快照庫中不再有時間戳版本。

<distributionManagement> 
    <repository> 
     <id>PROJECT-RELEASE</id> 
     <name>PROJECT-RELEASE</name> 
     <url>http://foo.bar:8081/nexus/content/repositories/PROJECT-RELEASE</url> 
    </repository> 
    <snapshotRepository> 
     <id>PROJECT-SNAPSHOT</id> 
     <name>PROJECT-SNAPSHOT</name> 
     <uniqueVersion>false</uniqueVersion> 
     <url>http://foo.bar:8081/nexus/content/repositories/PROJECT-SNAPSHOT</url> 
    </snapshotRepository> 
</distributionManagement> 
+0

false不適用於maven 3 – 2013-05-18 20:54:14

0

這是決議失敗或檢索? (檢索做了一個隱式的解析)。

我一次構建失敗,因爲下面的模式不是唯一的(需要姓名模式的分類,以滿足源和javadoc文物):

<ivy:retrieve pattern="lib/[artifact].[ext]"/> 
+0

這是決議。 – 2010-08-18 07:13:50