在常春藤解决maven test-jar

时间:2016-08-26 11:03:57

标签: maven nexus ivy

我需要从常春藤项目解决maven test-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" />

在nexus中,这个神器已经解决(IBSCore-2.21-20160825.121144-2.jar),但这个没有(IBSCore-2.21-20160825.121144-2-tests.jar)。

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

首先,我猜这是一个带有快照修订的模块?你常春藤的依赖声明是什么样的?

这是我最好的猜测:

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

其次,测试jar看起来像是一个额外的模块工件,在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存储库下载时,它支持的唯一附加文件是source和javadoc jar。有关更多痛苦的细节,请参阅:

答案 1 :(得分:0)

问题的真正原因实际上是我做了一些讨厌的蚂蚁任务:

 <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>

所以类型“test-jar”没有解决。添加这个就可以了。