hudson ci_hudson city

       hudson ci一直是人们关注的焦点,而它的今日更新更是备受瞩目。今天,我将与大家分享关于hudson ci的最新动态,希望能为大家提供一些有用的信息。

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

hudson ci_hudson city

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

       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的分析报告,关于重复代码,危险代码,混乱代码等都有哦。至于代码规则等,则需要你根据公司/项目的规范进行相应的增删了。

       好了,今天关于“hudson ci”的话题就讲到这里了。希望大家能够通过我的讲解对“hudson ci”有更全面、深入的了解,并且能够在今后的学习中更好地运用所学知识。