天天看點

第一章 傳統項目建構方式

    我們來回想一下,在沒有maven之前,我們是怎麼來建構項目的。

以我們熟悉的工具eclipse,要建立工程,我們會new一個project或dynamic web project,然後是拷貝或編寫配置檔案,配置檔案我們可能會放在src根目錄下,也可能會在src目錄下建個config或其他目錄,用于存放配置檔案;對于web項目,有些人也可能會将配置檔案存放于WEB-INF目錄下;接下來要拷貝lib,對于普通項目,可能會在工程根目錄下建一個lib目錄用于存放jar包,然後将jar包添加到classpath,對于web項目,直接将jar包拷貝到WEB-INF/lib目錄下;比如,我們需要添加spring的jar包,我們可能會到spring的官網去尋找相應的jar包,然後一個個下載下傳下來,添加到項目中;如果spring項目還依賴其他jar包,比如commons-logging,再去相應的官網下載下傳,或者下載下傳一個完整的帶有依賴的包,裡面包含了spring及其依賴,然後将這些jar包一并添加到工程;當然,對于有經驗的老司機來說,他可能本地目錄上已經下載下傳過spring的jar包了,隻需從磁盤中再拷貝一份,添加到工程中。接下來,開始編寫代碼,建立相應的包,開始開發。開發過程中需要不斷編譯,這一般是借助工具,一般會開啟自動編譯功能。開發完後,或者部分子產品開發完成,需要測試,編寫單元測試,我們可能會在之前相應的包下直接建立test類,好點的會在src下建個test源碼目錄,專門存放測試相關代碼。下圖是傳統方式建立的工程結構:

第一章 傳統項目建構方式
第一章 傳統項目建構方式

  測試完接下來是打包,一般會借助工具,如eclipse的export,導出完後将打成的jar包或war包上傳到遠端的伺服器上,這個一般可以借助winscp等FTP工具上傳,然後到伺服器上啟動服務。

  以上就是項目的建構過程,包括項目的建立、編譯、測試、打包、部署等,我們每天都在做這些事。

  我們來總結下傳統的建構方式的缺陷:

1、項目結構混亂 有些人喜歡把配置檔案放在src根目錄下,有些人放在WEB-INF目錄下,有些人放在自己建的目錄下,我們在拿到一個新項目的時候不得不去猜測配置檔案存放的位置,我們希望的目标是,任何一個項目,都是自己熟悉的風格;

2、添加依賴麻煩 我們得去不同的官網下載下傳jar包,有時候jar包不太好找,還得借助搜尋引擎;另外,jar包下載下傳後我們會存放到本地磁盤,jar包少的時候自己管理還比較好辦,一旦jar包多了,不同的jar包,同一jar包的不同版本,我們可能就管理不過來了,磁盤上就很亂了,這個簡直不能忍啊;另外,我們把jar包拷貝的項目中,每個項目都會獨立在磁盤中存儲一份jar包,雖然單個jar包體積不大,但項目多了,也是造成磁盤空間的浪費;

3、測試代碼 以往我們的測試代碼跟正式代碼混在一起,規範點的,可能會在src下建立一個test目錄,專門存放測試代碼,但是在打包的時候,這些測試代碼随同正式代碼一并被打包了,釋出到生産,而測試代碼不應該釋出到生産環境中;

4、編譯、打包、部署太多的手工勞作 傳統項目建構中,編譯還好,我們會借助工具的自動編譯功能,但是測試、打包、部署,這些都需要手工操作,費時費力

  接下來我們要介紹的maven,就是用來解決以上這些缺陷的。