
Sonar是一个开源代码质量控制工具。把它加到现在的持续集成工具中就能够让你的java开发项目集中处于质量控制之下。下面是安装和使用记录 :
修改.m2/settings.xml 增加下边的内容到profiles段落中:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- EXAMPLE FOR MYSQL -->
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<!-- SERVER ON A REMOTE HOST -->
<sonar.host.url>http://localhost:8888</sonar.host.url>
</properties>
</profile>
增加mysql权限
GRANT all ON sonar.* TO sonar@localhost IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES ;
vim .bashrc export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m -Duser.timezone=Asia/Shanghai"
source .bashrc
下载sonar,配置mysql:
conf/sonar.properties用户密码不用,默认都是sonar
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
sonar.jdbc.validationQuery: select 1
配置启动的http端口
sonar.web.host : localhost启动服务:
sonar.web.port: 8888
sonar.web.context: /
bin/[YOUR PLATEFORM]/sonar.sh start开始使用:
进到项目里运行 mvn sonar:sonar
打开http://localhost:8888 即可看到对应项目里的代码质量和修改建议。
解决系统时区的问题:
vim sonar-xx/conf/wrapper.conf
wrapper.java.additional.3=-Duser.timezone=Asia/Shanghai

关于amoeba,请见
java是一把双刃剑,可以很重地伤人,亦可很重地自伤。曾在一处见到,淘宝在长期使用java构建web项目后,得出一个结论:积重难返。
scribe 是 开源的分布式日志系统 。其使用了thrift传输log,由于使用thrift,所以不论是什么语言的项目都可以实现日志收集,可达到远程或者是本地同步远程的分布式日志收集效果,在其示例配置中,并发量可达到max_msg_per_second=2000000,对普通的应用来说,每秒上百万的访问量可能性很小,因此基本上即使最简单的配置,远程收集所有项目的log也是可靠的,如果压力大的话,可以采取主从的配置,将日志打到本地后由scribe的主从配置来自动同步。下面讲述如何安装和使用scribe。