我有一个特殊的情况,我需要打包一些罐子,我需要一个罐子的两个版本。我的常春藤定义如下所示:
<dependency org="blah" name="blahname" rev="1.0.0" conf="baseline->default" />
我希望相同的依赖关系解决两次,一次使用版本 1.0.0,另一次使用版本 2.0.0。那可能吗?实现这一目标的最简单方法是什么。
我有一个特殊的情况,我需要打包一些罐子,我需要一个罐子的两个版本。我的常春藤定义如下所示:
<dependency org="blah" name="blahname" rev="1.0.0" conf="baseline->default" />
我希望相同的依赖关系解决两次,一次使用版本 1.0.0,另一次使用版本 2.0.0。那可能吗?实现这一目标的最简单方法是什么。
使用 ivy 配置来创建和管理自定义的依赖组。
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="group1" description="First group of dependencies"/>
<conf name="group2" description="Second group of dependencies"/>
</configurations>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.6" conf="group1->default"/>
<dependency org="commons-lang" name="commons-lang" rev="2.0" conf="group2->default"/>
</dependencies>
</ivy-module>
<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve">
<ivy:resolve/>
<ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]"/>
</target>
</project>
笔记:
Lib 目录中填充了所需的 jar。
$ tree
.
|-- build.xml
|-- ivy.xml
`-- lib
|-- group1
| `-- commons-lang-2.6.jar
`-- group2
`-- commons-lang-2.0.jar