sonar源码解析-找到入口

一、环境源码准备

我们需要从网上去下载最新的代码。参考官方文档(  http://docs.codehaus.org/display/SONAR/Build+Sonar+from+sources )
git clone git://github.com/SonarSource/sonar.git
git fetch  release-2.11
quick-build.bat
mvn eclipse:eclipse
再把代码导入eclipse工程中。

二、找入口

我们先大致看了一下,sonar有这么多的工程:我大致分了下类,其实是一个组内的。一般core、api这样的工程是比较核心的。
sonar源码解析-找到入口_第1张图片
o,my god!实在太多了。分这么多说明作者很用心的。不过关键还是要找入口,入口一般有
  • main函数
  • 监听socket端口代码
  • http请求,servlet的实现类
  • 定时钟,触发
  • 反射调用
  • 作为别的一个插件触发主干逻辑。
笔者一般是试着打一些断点,通过栈的信息来找到入口。一般是通过运行mvn sonar:sonar后看打印的日志。如:
大致如JavaSourceImporter是一个类,找到打上断点。再运行 java的debug模式。sonar在hudson的插件参考这个连接: http://maven.apache.org/maven-1.x/reference/command-line.html。打上断点,运行debug后,就能出现栈信息如:一致往下看,就能大致看到入口。其实这里的入口就是 hudson的sonar插件。触发了分析逻辑。笔者没有贴出。嘿嘿。。。
sonar源码解析-找到入口_第2张图片

 

你可能感兴趣的:(eclipse,servlet,socket,git,文档,hudson)