最近看項目的代碼,看到工程中有兩個jar包張的很像,一個是commons.httpclient-3.1.jar,一個是httpclient4.2.1.jar,很納悶,而且這兩個包裡都有HttpClient這個類,但是包名卻不一樣,然後就尋找了一番資料,看下這兩個包到底是個什麼關係。
在httpclient4.2.1.jar的pom檔案中的依賴如下:
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/14105225C-0.jpg" title="QQ20131007151052.jpg" alt="151130996.jpg" />
可以看得出,這個jar包是依賴了httpcore,commons-logging,commons-codec這三個jar包。而在commons-httpclient.jar包在使用過程中,需要依賴commons-logging.jar和commons-codec.jar,這個httpclient4.2.1.jar就相當於集合了以前的commons-httpclient,commons-logging,commons-codec,這三個jar包,減少了繁瑣的匯入jar包的過程,現在只需匯入一個httpclient.jar就可以使用了。
除此以外,在apache的官網上下載httpclient的jar包時,會發現它是在一個叫HttpComponent的項目下,這個HttpComponent是apache的頂級項目。而以前的commons的那三個包都是commons的項目下。在HttpComponent的網頁上,看到了這樣的文字: HttpComponents Client is a successor of and replacement for Commons HttpClient 3.x. Users of Commons HttpClient are strongly encouraged to upgrade.
也就是說commons下的commons-httpclient不在更新和維護了,用commons-httpclient的使用者也建議更新到httpclient這個包。