您需要使用常春藤配置。这是一种非常灵活的机制来管理任意组的依赖关系。
下面的示例将每个版本的 jar 放置到单独的配置中。稍后可以使用 ivy cachepath任务来创建两个类路径。
例子
常春藤.xml
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="compile1" description="Required to compile application1"/>
<conf name="compile2" description="Required to compile application2"/>
</configurations>
<dependencies>
<!-- compile1 dependencies -->
<dependency org="asm" name="asm-all" rev="3.2" conf="compile1->master"/>
<!-- compile2 dependencies -->
<dependency org="asm" name="asm-all" rev="2.2.3" conf="compile2->master"/>
</dependencies>
</ivy-module>
笔记:
构建.xml
<project name="demo" default="init" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="init" description="Use ivy to resolve classpaths">
<ivy:resolve/>
<ivy:report todir='build/ivy' graph='false' xml='false'/>
<ivy:cachepath pathid="compile1.path" conf="compile1"/>
<ivy:cachepath pathid="compile2.path" conf="compile2"/>
</target>
<target name="clean" description="Clean built artifacts">
<delete dir="build"/>
</target>
<target name="clean-all" depends="clean" description="Additionally purge ivy cache">
<ivy:cleancache/>
</target>
</project>
笔记:
- 生成常春藤报告总是一个好主意。它会告诉你哪些依赖项存在于哪个 ivy 配置上。
- 此示例显示了 ivy 管理 ANT 路径。在组装 webapp WAR 文件之类的文件时,您还可以使用 ivy 配置和 ivy 检索任务来填充本地“lib”目录。