我有一个ivy.xml文件,我明确指定了我的依赖关系。 Ivy中是否有任何功能可以让我发现或自动更新过时的依赖关系?什么是Maven版本的Ivy等效值:display-dependency-updates?
我不想使用latest.release,因为我想要一个完全稳定和可重复的构建。但每隔一段时间,我都会想更新一些依赖关系,同时回答这个问题是很好的,哪些其他依赖关系已过时?
我有一个ivy.xml文件,我明确指定了我的依赖关系。 Ivy中是否有任何功能可以让我发现或自动更新过时的依赖关系?什么是Maven版本的Ivy等效值:display-dependency-updates?
我不想使用latest.release,因为我想要一个完全稳定和可重复的构建。但每隔一段时间,我都会想更新一些依赖关系,同时回答这个问题是很好的,哪些其他依赖关系已过时?
像你一样,我只使用动态版本的内部依赖。升级时,在一个新的发展阶段的开始,我会使用的库搜索工具之一来发现第三方库的新版本:
正如我”确保你意识到,另一个问题是,升级依赖关系往往会导致你的传递依赖性的非自愿升级......
我建议的是生成一个常春藤依赖项报告,并使用此t o检查你的代码的模块使用情况。我觉得这非常有用,特别是考虑到一些第三方Maven模块的表现不佳,并会将许多不必要的库导入到我的类路径中。
以下是我的标准依赖目标的一个例子:
<target name='dependencies' description='Resolve project dependencies and set classpaths'>
<ivy:resolve/>
<ivy:report todir='${ivy.reports}' graph='false' xml='false'/>
<ivy:cachepath pathid="compile.path" conf="compile"/>
<ivy:cachepath pathid="provided.path" conf="provided"/>
<ivy:cachepath pathid="runtime.path" conf="runtime"/>
<ivy:cachepath pathid="test.path" conf="test"/>
</target>
希望这有助于....如果你找到一个方法来自动管理这些我会感兴趣。
一种解决方法是使用ivy:makepom,然后运行mvn版本:使用生成的pom的display-dependency-updates。
我不确定这是否是最佳解决方案,但您可以创建要求最新版本的配置(例如“checklatest”),然后针对该配置运行报告。
例如,在您的ivy.xml文件: ...
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
,然后运行使用的任务是配置的Ant任务。
即使在那里,它并不一定会获得最新版本 - 例如,Apache的commons-httpclient最终被整合到httpcomponents项目中,因此在群组“commons中请求最新的”commons-httpclient“ “-httpclient”只能找到版本3.1。但是,如果你看一下艾维生成的报告的发布日期,应该很清楚发生了什么,最新的发布是2007年。那时,你将不得不进行调查。