问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Hudson上集成sonar来实现代码质量控制

发布网友 发布时间:2024-10-08 02:16

我来回答

1个回答

热心网友 时间:2024-10-08 02:45

Sonar是一款集成了PMD,checkstyle, FindBugs等代码质量管理功能的开源软件。.sonarsource.org/可以下载最新的版本。由于sonar是基于Maven 2实现构建的,所以你还需要从maven.apache.org/download.html 下载Maven 2。把sonar和Maven 2解压缩,然后设置MAVEN_HOME以及PATH加$MAVEN_HOME/bin。可以执行mvn –version来检查Maven的安装是否正确。
Sonar的配置主要改为mysql来实现数据持久化。编辑SONAR_HOME/conf/sonar.properties文件,注释掉embedded database段(derby),取消注释MySQL。
Maven 2的配置从前一个版本升级后得到极大的简化,基本上可以看成3层结构,$MAVEN_HOME/settings.xml为全局配置,~/.m2/settings.xml为用户级配置,项目下pom.xml为项目级配置。为了sonar的运行我们需要在settings.xml配置两项,一个是LocalRepository,另一个是增加profile为sonar。Sonar的Profile举例如下(包含在profiles节点下, sonar server可以跟hudson server一致):
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url> jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>ONAR_SERVER:9000</sonar.host.url>
</properties>
</profile>

以上基本完成了Sonar和Maven的安装和配置。接下来我们需要增加我们的管理对象开发项目了。因为我的Java项目是Web application,所以用如下命令创建:
mvn archetype:create -DgroupId=com.company.projectShortName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-webapp
Maven会在当前目录创建一个标准代码目录结构。
projectName
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- webapp
| `-- WEB-INF
| `-- lib
| `-- web.xml
`-- test
`-- java
删除projectName/src/main/java, projectName/src/main/webapp/WEB-INF/lib, projectName/src/test, 然后创建相同链接到你项目真实的java/src, WEB-INF/lib, java/test。
编辑projectName/pom.xml,在build标签下增加
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src/main/webapp/WEB-INF/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
以上插件为了解决Maven默认用1.3来编译导致大量泛型类无法通过编译的问题,强制用jdk 1.5即可支持泛型类。另外把webapp的组件jar目录设置好。
这样就完成了所有Sonar和Maven对项目的配置了。现在可以进入项目Maven目录,执行mvn sonar:sonar来分析代码了。
不过我们的目标是在hudson系统中集成sonar。所以我们还有几个步骤需要完成。
首先把hudson的sonar插件从hudson-ci.org/download/plugins/sonar下载得到。添加到hudson服务器的$JBOSS_HOME/server/all/deploy/hudson.war/WEB-INF/plugins然后redeploy hudson即可。登陆hudson界面,在系统配置中针对sonar节增加sonar,配置server URL, database url, database login, database password, database driver跟Maven 2的settings.xml中sonar profile一致即可。勾选上“用户手工启动”。
然后在项目的配置页面里,勾选上Sonar,把Maven version, Root POM, MAVEN_OPTS配置好即可。其中Maven version为全局配置的版本,Root POM就是maven create的projectName/pom.xml(需要全路径,因为与hudson任务的工作空间不同),MAVEN_OPTS配置为-Xmx512m -XX:MaxPermSize=256m以防止内存错误。
喝杯茶,等着hudson的构建结果吧。你可以找到sonar的分析报告,关于重复代码,危险代码,混乱代码等都有哦。至于代码规则等,则需要你根据公司/项目的规范进行相应的增删了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
win7窗口淡入淡出慢 iPhone 小技巧:如何将 Safari 浏览器中的网页添加到桌面? 锰粉是什么颜色的金属 铁精粉的常见颜色是什么 烟花爆竹中的金属粉末如何使其呈现绚丽色彩? 金粉有哪些种类 灰土每层回填最大厚度 灰土基础简史 如何让一个喜欢你的女孩讨厌你! 西环里新区基本资料 那些总是写“烂代码”的同学,强烈推荐你用这款IDEA插件! 高压130低压100危险吗 SonarQube+jenkins+maven平台搭建 我打了老婆,现在我想挽回,想证明以后都不会动手打她,该怎么做,在线等谢... 挽回老婆的过程中除了要道歉,还要做到这3件事 石家庄动物园门票多少一张 男人犯错,两家大人见面了,我要怎么道歉才能挽回老婆,我真的喜欢她? 粉红色的格子外套里面应该配什么颜色的衣服。 王者荣耀S9哪些英雄好用 S9赛季必买英雄推荐 S9赛季哪些英雄值 王者荣耀S9上分英雄有哪些介绍_王者荣耀S9上分英雄有哪些是什么_百度知 ... 《王者荣耀》S9赛季初上分英雄有哪些介绍_《王者荣耀》S9赛季初上分英 ... 2023云南野生动物园表演时间表 芝麻分700多能贷款多少额度 朱家峪如何预约_济南章丘朱家峪现在门票多少 河南中秋去哪里玩,南阳中秋旅游推荐 手机连接不上Wi-Fi怎么办? 中秋将至,教你在家做月饼! 尤文电话门始末 基金TH是什么 荆棘鼹鼠兽基本资料 《《桃锅锅的推文系列》桃桃一轮》txt全集下载 求桃桃一轮的小说全集百度云,谢谢! 求发桃桃一轮的作品集!! 谢谢 飞虫兽进化 《沉思往事立残阳》桃桃一轮的txt全集下载地址 萨姆的t恤衫(英汉互译) 英汉互译 leave(过去式) 在十月上旬 scarf(复数) 棉T恤衫 swim(现在分... 谁能帮我鉴别一下我这款卡地亚手表是真吗?如果是真的多少钱?谢谢了, 我想买一台惠普的笔记本电脑,哪个型号好,请具体说明一下配置!学生... 配置电脑,给我个配件清单……谢谢 想买惠普笔记本电脑。。。 惠普、戴尔、华硕那个牌子的笔记本最好? 推荐14寸笔记本电脑性价比比较高 西门子200模块红灯亮什么原因? 求暗夜视觉远程控制8.0的软件 发到我邮箱 963230209@qq。com 谢谢_百度... 想搜索一部电影 龙英文怎么拼 为什么小樱要抱住鸣人 小樱是不是不是真心喜欢鸣人?