2016-08-26 128 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