我只是做了一个非常丑陋的黑客 .
我有一个模块A,它 生产环境 两个 jar .
moduleA.jar and moduleA.test.jar
module.test.jar由同一存储库中的其他项目使用,不会进一步发布到其他存储库 .
我把它添加到moduleA的ivy.xml中
<publications>
<artifact name="moduleA" type="jar" ext="jar" conf="compile"/>
<artifact name="moduleA.test" type="jar" ext="jar" conf="test"/>
</publications>
我怎样才能在moduleB中使用它 . 我知道Maven不支持每个模块的多个工件,我在某处读到了IVY支持的这个工件 . 我只是似乎没有写它 .
我在moduleB的ivy.xml中试过这个:
<dependency org="my.org" name="moduleA" rev="SNAPSHOT" conf="compile,test->default,test" />
<dependency org="my.org" name="moduleA.test" rev="SNAPSHOT" conf="compile,test->default,test" />
但这显然不起作用,因为'name'是模块的名称而不是工件 . 我有一个使用type属性的工作:在moduleA中:
<artifact name="moduleA" type="test.jar" ext="jar" conf="test"/>
在moduleB中:
<dependency org="my.org" name="moduleA" rev="SNAPSHOT" conf="compile,test->default,test" />
这很有效,但看起来非常难看 . 因为我必须在ANT中生成文件,如下所示:
moduleA-SNAPSHOT.test.jar
任何根据同一模块的多个工件的整洁解决方案?
这个问题不同于:How do I solve Multiple artifacts of the module X are retrieved to the same file in Apache Ivy?
1 回答
假设模块A看起来像这样:
以下模块B声明将检索moduleA.jar
以下模块B声明将检索moduleA.test.jar
它是配置映射使其工作:
本地配置不必是“默认” . 显然,如果模块B也使用配置,您可以使用其中之一 .