我有一個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年。那時,你將不得不進行調查。