我刚刚做了一个非常丑陋的黑客攻击。
我有一个模块 A 产生两个罐子。
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" />
但这显然不起作用,因为“名称”是模块的名称而不是工件的名称。我有一个使用类型属性的工作:在moduleA中:
<artifact name="moduleA" type="test.jar" ext="jar" conf="test"/>
在模块B中:
<dependency org="my.org" name="moduleA" rev="SNAPSHOT" conf="compile,test->default,test" />
这有效,但看起来很丑陋。因为我必须在 ANT 中生成如下所示的文件:
moduleA-SNAPSHOT.test.jar
依赖同一模块的多个工件的任何巧妙解决方案?
这个问题 id 不同于: 如何解决模块 X 的多个工件被检索到 Apache Ivy 中的同一个文件?