前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java开源项目——源码阅读方法,二次开发方法

Java开源项目——源码阅读方法,二次开发方法

原创
作者头像
Java知音
修改2019-03-26 10:43:00
1.8K0
修改2019-03-26 10:43:00
举报

一直以来,都想要阅读某些Java开源项目的源代码,甚至想要修改某些代码,实现对开源项目进行二次开发的目的。但总是不知从何入手,直接将开源项目的源代码导入Eclipse,总是会报很多错误,而无法编译。

下面以Axis2源代码为例,做一个小实验例子,修改services/listServices请求的处理源码,使得原先仅支持WSDL方式描述的Web服务现在也支持OWL4WS的Web服务描述。看到文末有惊喜!

第一步:安装maven

安装maven实在是简单,从 http://maven.apache.org/download.html 下载最新的maven版本,然后解压,配置MAVEN_HOME和MAVEN_OPTS以及path环境变量即可。MAVEN_HOME指向maven的跟目录,MAVEN_OPTS配置maven执行时的参数,由于MAVEN默认设置的内存比较少,编译大项目时可能会出现OutofMemory的情况,如我没有设置MAVEN_OPTS而编译Axis2的源码时就出现了OutofMemory的情况,最后配置path,指向%MAVEN_OPTS%in即可。使得在命令行界面中能够直接使用maven命令。更多关于maven的介绍,推荐一本书给大家:《Maven实战》,也有叫《Maven in action》,是一个中国人写的,浅显易懂。

第二步:安装Eclipse的maven插件

Help->Install New Software->Add,添加如下内容:

m2e - http://download.eclipse.org/technology/m2e/releases

如 http://www.eclipse.org/m2e/download/ 所示,上述插件的路径应该为m2e的最新版本,使用之前的版本可能会出现依赖其他插件的情况,导致m2e插件安装不上,SB的Eclipse也没有提示m2e到底依赖哪些插件导致其安装不上,度娘倒是能够提供一下帮助,但是几乎不能找到一个能够使用的。

安装完m2e插件之后,就能通过Eclipse打开maven格式的项目,并能够借助Eclipse对maven格式的源项目进行编译,当然也可以直接通过Eclipse创建一个Maven项目,从而使用maven的方式管理你的项目。maven实在是强大,如果你使用Java语言写程序,了解maven真心是有必要。安装完后再创建项目或者导入项目时,就可以选择Maven进行了。安装完插件后会看到如下效果:

Java开源项目——源码阅读方法,二次开发方法
Java开源项目——源码阅读方法,二次开发方法

第三步:在Eclipse中修改源代码

通过Eclipse导入maven项目,就能使用Eclipse的可视化导航功能对源码进行阅读及修改,还能直接执行相关的mvn命令,导入后的程序如下图所示:

Java开源项目——源码阅读方法,二次开发方法
Java开源项目——源码阅读方法,二次开发方法

第四步:通过mvn package编译并打包源码,得到发行版本,进行测试

有了maven,源代码的编译及打包就变得容易多了,可以直接通过Eclipse进行,选择项目右键Run As或者右键单击项目的pom.xml文件Run As即可。如下图所示:

Java开源项目——源码阅读方法,二次开发方法
Java开源项目——源码阅读方法,二次开发方法

当然,也可以直接通过命令行进行打包编译,我选择采用命令行进行,由于我只修改了Axis2源码中的两个模块,这两个模块分别是axis2-transport-http和axis2-webapp。对这两个模块的命令行编辑命令如下:

  1. [plain] view plaincopyprint?
  2. C:OpenSourceaxis2-1.6.0-srcaxis2-1.6.0modules ransporthttp>mvn clean install
  3. [INFO] BUILD SUCCESS
  4. C:OpenSourceaxis2-1.6.0-srcaxis2-1.6.0moduleswebapp>mvn clean package
  5. [INFO] Building war: C:OpenSourceaxis2-1.6.0-srcaxis2-1.6.0moduleswebapp argetaxis2.war
  6. [INFO] BUILD SUCCESS

mvn install是将axis2-transport-http模块安装到maven本地仓库中,而mvn package是将源程序按指定的格式打包,由于webapp模块的pom.xml文件中指定了很多依赖模块,包括其他项目的或者axis2本身的模块,如transport-http模块,打包时会从本地仓库中自动获取其依赖的模块,并打包。如果本地仓库中没有相应的模块,会去网上自动下载,这也是为什么第一次编译开源项目时会花费很长时间的原因。

将axis2.war包拷贝到tomcat的webapp目录下,启动tomcat,在浏览器中输入http://localhost:8080/axis2/services/listServices,即可看到修改后的页面已经对OWL4WS进行了支持。如下图所示:

Java开源项目——源码阅读方法,二次开发方法
Java开源项目——源码阅读方法,二次开发方法

回过头来,发现本篇文章尽是废话,不过就是想表达一下,maven真心是灰常强大,对于想要阅读Java开源项目源代码,或者有在这些源代码的基础上进行二次开发冲动的童鞋,一定不要错过maven的学习,不过感觉这种方式在修改源代码,然后进行测试这种方式还是非常不方便,命令行编译,还得copy到tomcat下测试运行,哪位有更好的阅读源代码并进行二次开发的方式,请你一定要告诉我啊。

对Java感兴趣的在这里给大家免费分享一波福利,都是视频资料,里面就包涵了Java高并发、分布式、微服务、高性能、源码分析、JVM等技术资料

感兴趣的关注+转发+私信回复【Java资料】,【免费】获取!

Java开源项目——源码阅读方法,二次开发方法
Java开源项目——源码阅读方法,二次开发方法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:安装maven
  • 第二步:安装Eclipse的maven插件
  • 第三步:在Eclipse中修改源代码
  • 第四步:通过mvn package编译并打包源码,得到发行版本,进行测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档