關於Maven和Nexus

less than 1 minute read

關於Maven和Nexus要講的有好多,但如果等到都研究透徹了再寫下來,那一天似乎永遠不會到來。

起因是公司的項目用Maven來build,公司裡面有Nexus服務,我想在家裡面build,問題就來了,到現在兩個多月過去,進展有一些,但還未完全搞掂。

以下是一些要點記錄。

1、 要搞清楚Release和Snapshot兩種Maven服務器的區別,前者是固定不會更新的,後者會經常更新(至少根據定義是如此,因此每次都會有網絡請求!);

2、 Maven的offline參數 -o 不是所有plugin都會尊重的,有的即使有這個參數還是會有網絡請求;

3、不是所有jar包都會在Central上有的,有版權的原因,也有歷史原因。項目依賴一多,沒有Nexus私服寸步難行;

4、Maven是個框架,幾個life cycle要搞清楚,每個lifer cycle有什麼phase也要清楚。Plugin祇是嵌入這個框架和生命週期中的東西,具體怎麼用,由plugin自己決定;

5、Maven適合做依賴和組件管理,它取代不了Ant,有些任務如果不屬於依賴管理,可能交給Ant做更合適;

6、本地(家裡)搭一個Nexus和學會使用是繞不過去的(其實也沒有多難),別以爲把 .m2/repository 複製到家裡就萬事大吉,有的任務就是要訪問容器,例如jaxb

Categories: Tech

Updated: