1.首先在github找到源代碼地址(可以在github搜索框中輸入關鍵字搜索)
httpclient地址:https://github.com/apache/httpclient/這里面包含了:httpclient和httpmime的源代碼
httpcore地址:https://github.com/apache/httpcore
2.然后下載源文件
命令為
git clone
https://github.com/apache/httpclient.git
cd httpclient
git checkout 4.4.x
cd ../
git clone
https://github.com/apache/httpcore.git
cd httpcore
git checkout 4.4.x
3.現在可以向eclipse中導入源代碼進行編譯打包了:
首先我費了很大力氣才知道,打包java的庫文件的過程是:Export->java->JAR file->Finish,有了這樣的知識准備,似乎可以開始打包了
1,新建一個空的工程
2,項工程中導入源代碼:在新建的工程src上面右鍵Import->General->File System->選擇路徑->Finish
對於httpcore,打包似乎一切正常,打包后得到httpcore.jar文件
現在打包httpclient,導入過程和上面描素過程一致,但是發現好多文件都由紅XX,打開看了一下,發現事好多文件都import了httpcore中的類,
於是我將剛剛打包好的httpcore.jar導入工程的庫目錄,發現絕大多數文件的紅XX消失了,哎~ 松了一口氣,繼續看余下的問題
打開帶紅X的文件發現有一句:
import org.apache.http.protocol.ExecutionContext;
這個是個什么鬼?
經過近乎崩潰的查找最后在httpcore的4.0.x分支項目的org.apache.http.protocol下面找到了ExecutionContext.java文件,現在怎么辦,只好將這個文件添加進httpcore的
4.4.x版本然后再次編譯打包,類似的問題還有
import org.apache.http.params.HttpProtocolParams;同樣處理
到這里紅XX還有一些,他們的共同的特點是有這樣的語句:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
這又是什么鬼?
通過艱難的查找,發現這是apache很多開源項目中都有的包里面的東東:commons-codec-XX.jar以及commons-logging-XX.jar,找到問題基本上解決問題就很容易了,有如下兩種方法可以一試:
A.直接下載這兩個包導入項目
B.去apache的github中下載這兩個項目的代碼,自己編譯打包
通過嘗試,發現B想法有點天真,沒能成功,原因如上,commons-logging-XX缺一堆各種包,於是先下載這兩個jar包導入
結果打包正常
最后打包httpmime.jar一切正常
4.在一個新建的項目中導入剛才打好的包,再倒入commons-codec.jar 和commons-logging,jar,編寫程序測試,證實打包正常