工做小几个月了,JDK基础和web应用框架学的的差很少了,开始学习Jetty源码,费了小半天才编译成功,把本身拆过的坑记录下来。html
编译前的环境:java
MAVEN 3.三、Eclips eLuna Service Release 1 (4.4.1) git
下载好MAVEN后,得把Eclipse中的maven配置为下载的MAVEN具体请搜索其余博文参考!github
1.1 Jetty源码能够方便的在Github的Jetty工程主页上下载,连接。框架
1.2 进入主页后,看了的页面相似以下:eclipse
1.3 点击Jetty工程主页图片的1处能够出现下拉弹出菜单,你能够按branch或者tag选择不一样版本的Jetty,本文使用的是Jetty 9.3.x,也就是快照版。maven
1.4 点击Jetty工程主页图片的2处,显示下载源码包的方式,若是你没有git客户端或者不想安装,点击下载zip包的链接进行直接下载。学习
2.1 下载zip包成功后,进行解压,jetty包的根目录下文件一览以下。在此,为后面叙述方便,称该目录为$myJettySourceRoot。
该目录(后续称为$myJettySourceRoot)中红框圈中的两个文件值得注意:
README.md是开发者团队为编译源码的开发者提供的一些提示的内容,可是别当真!彻底按他的作是编译不会成功的!!!
porm.xml是Jetty工程的根porm文件。
2.2 打开Eclipse,选择File->import->Maven->Exesting Maven Projects。选择$myJettySourceRoot目录,个人是C:\Users\Administrator\Downloads\jetty.project-jetty-9.3.x,以下图,选择全部工程。点击“完成”开始导入,而后Maven会开始
下载依赖包,工程可能须要持续3个小时。中途出现的选项一概点“确认”和“resolve later”,可能会出现重启Eclipse的选项,也点“确认”。
3.1导入成功后,Eclipse中目录树以下,找到Jetty-Protject工程鼠标右键,选择run as->Maven clean,进行工程清理。
3.2 清理完成后,在选择etty-Protject工程鼠标右键,选择run as->run configuration。在Maven Bulid下新建一个build配置。按下图配置:进行install、但跳过test。(由于有一些测试在本机上难以成功)。点击“run”开始编译,中途会出现失败的场景,处理步骤参考3.3,重复几遍后可编译成功。
3.3 编译失败的的处理参考。
在编译中,常常会出现编译失败,查看控制台信息会发现"Could not resolve dependencies for
xxx:jar:test"的相似信息,出现这种状况是jetty-project某个子模块依赖了另外一个子模块的test包,出现这种状况,先在Eclipse中找到对应xxx的Maven工程,右键run as ->maven install。好比xxx是jetty-plus,就右键jetty-plus工程,run as ->maven install,先安装这个子模块的全部包,而后再执行3.2,重复几回就能够编译成功。彻底编译成功以下图:
3.4 在$myJettySourceRoot\jetty-distribution\target\distribution目录(个人目录是C:\Users\Administrator\Downloads\jetty.project-jetty-9.3.x\jetty-distribution\target\distribution)下能够查到编译成功后的文件。
3.5 打开cmd,cd到该目录下,输入java -jar start.jar能够启动Jetty。