2016-08-26 182 views
0

我需要解決ivy項目的maven測試jar依賴關係。檢索罐子是沒有問題的,但測試瓶都沒有解決出於某種原因...解決常春藤maven測試jar

這裏是我的解析器

<ibiblio name="nexus" root="${nexus-maven2-root}" pattern="${nexus-maven2-pattern}" m2compatible="true"/>

<property name="nexus-maven2-pattern" 
      value="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" 
      override="false" /> 

在聯繫,這件神器解決(IBSCore -2.21-20160825.121144-2.jar),但這個不是(IBSCore-2.21-20160825.121144-2-tests.jar)。

非常感謝您的幫助!

+0

你爲什麼要用ibliblio解析器指定一個模式? –

回答

0

問題的真正原因其實是,我有一些討厭的Ant任務執行以下操作:

<target name="-do-resolve-ivy-dependencies" unless="ivy.cached"> 
    <ivy:resolve conf="default, test, test-utils" type="jar, war, bundle" log="download-only" checkIfChanged="false"/> 
    <ivy:cachefileset setid="default.libs.id" conf="default" log="download-only"/> 
    <ivy:cachefileset setid="test.libs.id" conf="test, test-utils" log="download-only"/> 

    <path id="default.libs.path"> 
     <fileset refid="default.libs.id"/> 
    </path> 
    <path id="test.libs.path"> 
     <fileset refid="test.libs.id"/> 
    </path> 
</target> 

所以類型「測試罐「沒有解決。添加這個技巧。

+0

您可以使用常青藤高速緩存路徑任務在單個步驟中創建Ant路徑http://ant.apache.org/ivy/history/latest-milestone/use/cachepath.html –

0

首先,我猜這是一個快照修訂模塊?常春藤你的依賴聲明是什麼樣的?

這是我最好的猜測:

<dependency org="group.goes.here" name="IBSCore" rev="2.21-SNAPSHOT" /> 

其次測試罐子看起來像一個附加模塊神器,這東西在Maven中會使用「分類」中引用,例如:

<dependency> 
    <groupId>group.goes.here</groupId> 
    <artifactId>IBSCore</artifactId> 
    <version>2.21-SNAPSHOT</version> 
    <classifier>tests</classifier> 
</dependency> 

所以,如果我是正確的,你可以檢索這兩個文件,明確說明他們在常春藤依賴:

<dependency org="group.goes.here" name="IBSCore" rev="2.21-SNAPSHOT"> 
    <artifact name="IBSCore" type="jar" /> 
    <artifact name="IBSCore" type="jar" m:classifier="tests"/> 
</dependency> 

語法很奇怪,因爲與Ivy不同,Maven模塊的元數據沒有明確列出它包含的所有文件。當Ivy從Maven倉庫下載時,它支持的唯一附加文件是源代碼和javadoc jar。欲瞭解更多痛苦的細節,請參見:

+0

非常感謝您的回答。這絕對有幫助! – user6761124