Maven 2 常春藤与Maven';s版本:显示依赖项更新?
我有一个ivy.xml文件,其中明确指定了依赖项。Ivy有没有内置的功能可以让我发现或自动更新过时的依赖项Maven 2 常春藤与Maven';s版本:显示依赖项更新?,maven-2,maven,ivy,dependency-management,Maven 2,Maven,Ivy,Dependency Management,我有一个ivy.xml文件,其中明确指定了依赖项。Ivy有没有内置的功能可以让我发现或自动更新过时的依赖项 <dependencies> .... <dependency org="somegroup" name="somename" rev="latest.release" conf="checklatest->default"/> </dependencies> 我不想使用最新版本,因为我想要一个完全稳定和
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
我不想使用最新版本,因为我想要一个完全稳定和可复制的构建。但是偶尔我会想更新一些依赖项,同时最好回答以下问题:哪些其他依赖项已过时?与您一样,我只对内部依赖项使用动态版本。升级时,在新的开发阶段开始时,我会使用其中一个存储库搜索工具来发现第三方库的新版本:
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
我的建议是生成一个常春藤依赖报告,并使用它来检查代码的模块使用情况。我发现这非常有用,特别是考虑到一些第三方Maven模块的性能不好,会将许多不必要的库导入到我的类路径中
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
以下是我的标准依赖项目标的示例:
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
希望这有帮助。。。。如果你能找到一种自动管理的方法,我会很感兴趣。一种解决方法是使用ivy:makepom,然后运行mvn版本:使用生成的pom显示依赖项更新。我不确定这是否是最好的解决方案,但你可以创建一个要求最新版本的配置(例如,“checklatest”),然后对其运行一个报告
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
例如,在ivy.xml文件中:
...
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
....
然后运行一个ant任务,将该任务用于该配置
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
即使在那里,它也不一定会获得最新版本——例如,Apache的commons httpclient最终被合并到httpcomponents项目中,因此请求组“commons httpclient”中的最新“commons httpclient”只能找到版本3.1。但是如果你看一下Ivy生成的报告的发布日期,应该很清楚发生了什么事情,最新的发布日期是2007年。在这一点上,你必须进行调查。大致相当于常春藤
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
它提供如下输出:
<dependencies>
....
<dependency org="somegroup" name="somename"
rev="latest.release" conf="checklatest->default"/>
</dependencies>
[ivy:checkdepsupdate] com.sun.mail#javax.mail 1.5.4 -> 1.6.2
[ivy:checkdepsupdate] commons-codec#commons-codec 1.10 -> 1.11
[ivy:checkdepsupdate] org.apache.commons#commons-compress 1.12 -> 1.18
[ivy:checkdepsupdate] commons-dbutils#commons-dbutils 1.5 -> 1.7
[ivy:checkdepsupdate] commons-io#commons-io 2.4 -> 2.6
[ivy:checkdepsupdate] org.apache.commons#commons-lang3 3.6 -> 3.8.1
[ivy:checkdepsupdate] org.apache.commons#commons-text 1.1 -> 1.6
[ivy:checkdepsupdate] org.apache.poi#poi 3.13 -> 4.0.0