首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ivy 參考文檔:最佳實踐(上)

     編輯:Java 相關知識

1. 為所有模組添加模組描述符

Ivy 世界中,模組描述符即 ivy 檔案,描述模組產出的制品及其依賴。為所有涉及模組編寫或下載描述符是好習慣,甚至包括第三方依賴(即使不提供自己的描述符)。

起初似額外工作,但當多模組使用相同第三方庫,只需在 ivy 檔案加一行即可獲得該庫及其特有依賴(倉庫有正確描述符時,尤其配合模組配置)。更新依賴時,修改 ivy 檔案一行即可獲取更新版本及其依賴。建議倉庫所有模組都有 ivy 檔案,甚至可透過設定解析器 allownomd=false 強制執行。不需使用包含/排除/規格等特性,僅用於特殊情況。

2. 使用自己的企業倉庫

對開源專案不一定適用,但企業環境強烈建議避免依賴公共倉庫(如 Maven ibiblio 或 ivyrep)。原因:

  1. 控制權:公共倉庫無控制權。模組描述符損壞難修復。可用鏈式倉庫隱藏公共倉庫,但增加瀏覽維護麻煩。倉庫可能更新:版本應穩定但常見描述符 bug、制品損壞、甚至同名重新發布(如 Ivy 1.2 事件)。這破壞建構可重現性。
  2. 可靠性:Maven 倉庫可靠性不佳(常極慢或無法存取),ivyrep 僅小公司支援。倉庫倒下會嚴重拖慢開發/發布流程。
  3. 準確性:公共倉庫包含遠超實際需求的內容。企業環境中,庫在被專案使用前需驗證。建立僅含實際需求庫的企業倉庫,不僅保證依賴品質,還能統一版本,甚至協助宣告模組依賴。配合 IvyDE 等工具,自動完成僅顯示倉庫恰當資訊。
  4. 安全性:倉庫下載的制品通常可執行,涉及安全。駭客若用含病毒版本替換 commons-lang,依賴公共倉庫建構軟體有風險。詳見 Forrester 文章。

注意:用企業倉庫不意味著全手工建構。Ivy 有 install 任務可從一倉庫安裝模組到另一倉庫,可選擇性從公共倉庫安裝到企業倉庫,保有控制、可靠性、準確性。

3. 至少在組織和模組上使用模式

Ivy 靈活適應現有倉庫,但若倉庫尚不存在,強烈建議模式中始終使用組織和模組名,即使僅放置自己模組的私有倉庫(所有組織相同)。原因:Ivy listing feature 依賴模式中的標記。無組織標記則無法列出倉庫組織,影響 IvyDE 自動完成、倉庫範圍任務(安裝、報告)。

4. 為公共倉庫發布 ivysettings.xml

建立公共倉庫時,請提供對應 URL 的 ivysettings.xml。想利用倉庫者只需設定此 URL 載入,或在自己配置中包含,使聯合多公共倉庫變得容易。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved