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,编写程序测试,证实打包正常