2017-01-29 48 views
0

考慮我在另一個項目中使用了一個項目,因此該項目版本爲1.0,我在nexus中安裝它。在nexus中更改依賴關係版本的最佳做法

,我之後在做這個項目的一些變化,所以在這種情況下,我有兩個解決方案:

  1. 最多的版本項目,以2.0,並從關係刪除版本1.0,所以當開發者嘗試從nexus獲得依賴關係,該版本1.0向他/她展示此版本不存在並需要將版本更改爲2.0的錯誤。

  2. 改變這個項目的功能,並通知船員我做了一些改變,這根本不是實踐。

我的問題是:是否有在行家和Nexus任何功能,簡化了這項任務,使所有在後端,因此開發商不能做任何事情,或者這是不可能的?

謝謝。

+0

爲什麼要刪除1.0?版本控制的目的是禁止在發佈的產品中更改內容。假設你可以,兩個開發人員甚至不能放心,在相同版本中使用相同的庫運行完全相同的代碼。 – Tunaki

+0

好的@Tunaki,考慮我不刪除版本,我做了一些改變,開發人員知道這個改變的方式?我知道如果開發人員第一次從'nemus'下載jar包到'.m2'文件夾中,那麼他使用這個jar包就可以使用這個功能,所以如果我改變了這個jar包的功能並且重新安裝這個jar,舊的功能,因爲他使用從.m2而不是來自nexus服務器的jar,並且因爲maven不會更改jar,因爲它總是以相同的方式存在** GAV **!我認爲這是maven的政策我錯了? –

+0

穩定性是關鍵詞。如果有人使用1.0版,他們的構建必須繼續工作。也許1.0是越野車,但它沒有理由完全刪除它。我假設該項目是有記錄的,有一個網站等...顯示最新版本,發送郵件,溝通。 – Tunaki

回答

2

如果你有一箇舊版本的工件,一定不能用因爲它有一些危險的錯誤,或者它不適用於新的數據庫結構或者類似的東西,建議將它移動到一些非公開的Nexus存儲庫(也從構建服務器的本地存儲庫中刪除它),這樣任何人都無法將其用於發佈版本(人們可以將其用於本地構建,但這通常不是危險的)。

如果你想管理整個公司的標準版本,最好有一個父POM或一些BOM在<dependenyManagment>部分收集版本,並且可以被開發人員包括在內。這樣,您只需通知他們更改一個版本號(即父pom或bom的一個)而不是很多。

儘管如此,你仍然面臨着人們不讀公司通訊的問題。我知道很多jars開發人員在戰爭/耳朵(包括jar)使用新版本時,會針對它們的依賴關係的舊版本編譯和測試它們的源代碼。

相關問題