我们通过常春藤管理我们的罐子。我们的项目依赖于 ivy 为我们处理的 Common.jar。这一切都很好,可以将最新的 jar 从存储库拉到本地存储库。
但是,我们的团队希望在提交之前对 Common.jar 进行更改并针对项目进行测试。我想将 Common.jar 添加到我们的本地类路径中,这实际上将覆盖本地存储库中的 ivy 依赖项。
这里最好的方法是什么?我应该将 Common.jar 添加到 lib 目录并添加到构建路径吗?
我认为您希望您的本地解析器处于“强制模式”。在 ivysettings.xml 中的本地解析器上设置 force="true"。
强制模式的描述见:http: //ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html
(参考:常春藤:强制本地快照依赖)
使用配置来区分您的依赖项
<configurations>
<conf name="common" description="Used for common jar"/>
<conf name="others" description="Other 3rd party dependencies"/>
<conf name="norm" extends="common,others" description="Normal complete list of dependencies"/>
</configurations>
<dependencies>
<dependency ... module="common" ... conf="common->default"/>
<dependency ... conf="others->default"/>
<dependency ... conf="others->default"/>
</dependencies>
请注意如何使用“扩展”属性来创建依赖项的联合集。然后,您可以在构建中创建其内容由 ivy 控制的类路径
<ivy:cachepath pathid="others.path" conf="others"/>
<ivy:cachepath pathid="norm.path" conf="norm"/>
第一个路径用于针对本地构建的 common.jar 进行测试。第二个路径将另外包含从您的存储库中检索到的公共 jar。