Sonarqube环境搭建

  sre

1、安装JDK

copy  jdk-7u51-linux-x64.rpm到/usr/java

rpm –ivh jdk-7u51-linux-x64.rpm

修改环境变量

export JAVA_HOME=/usr/java/jdk1.7.0_51

export CLASSPATH=.:JAVA_HOME/lib/tools.jar:JAVA_HOME/lib/dt.jar

export PATH=JAVA_HOME/bin:PATH

保存文件,并运行使其环境变量生效

source /etc/profile

检查是否安装成功

java -version

2、安装Tomcat6

copy apache-tomcat-7.0.50-windows-x64.zip到/usr/share

unzip apache-tomcat-7.0.50-windows-x64.zip

修改环境变量

export CATALINA_HOME=/usr/share/tomcat7

export CLASSPATH=JAVA_HOME/lib:CATALINA_HOME/lib

export PATH=PATH:CATALINA_HOME/bin

保存文件,并运行使其环境变量生效

source /etc/profile

增加内存

vi /usr/share/tomcat7/bin/catalina.sh

添加:JAVA_OPTS=”-Xms8g -Xmx8g -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2g”

启动tomcat

3、安装maven,并配置maven环境变量

下载安装apache-maven-3.1.1-bin.zip到指定目录

配置环境变量,编辑/etc/profile文件,添加如下代码

# maven

export MAVEN_HOME=/usr/local/maven3

export M2_HOME=$MAVEN_HOME

export PATH=MAVEN_HOME/bin:PATH

保存文件,并运行使其环境变量生效

source /etc/profile

在制台输入如下命令,如果能看到Maven相关版本信息,则说明Maven已经安装成功

mvn -v

 

4¡ 数据库配置并增加权限

192.168.100.11myql密码是:root

进入数据库命令

#mysql -u root -p

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;

mysql> GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;

mysql> GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar’;

mysql> FLUSH PRIVILEGES;

5、下载sonar

将下载的sonarqube-4.3.zip包解压至Linux路径/usr/zhuweiliang

 

修改emperor、top-project项目的pom.xml文件,并且提交到SVN

父节点Pom.xml文件添加的内容:

<properties>

<!– coverage配置 –>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<!– Sonar –>

<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>

<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>

<!– The destination file for the code coverage report has to be set to

the same value in the parent pom and in each module pom. Then JaCoCo will

add up information in the same report, so that, it will give the cross-module

code coverage. –>

<sonar.jacoco.itReportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.itReportPath>

<sonar.language>java</sonar.language>

</properties>

构建项目时添加插件配置如下:

<build>

<pluginManagement>

<plugins>

<plugin>

<groupId>org.jacoco</groupId>

<artifactId>jacoco-maven-plugin</artifactId>

<version>0.7.1.201405082137</version>

</plugin>

<plugin>

<groupId>org.eclipse.m2e</groupId>

<artifactId>lifecycle-mapping</artifactId>

<version>1.0.0</version>

<configuration>

<lifecycleMappingMetadata>

<pluginExecutions>

<pluginExecution>

<pluginExecutionFilter>

<groupId>org.jacoco</groupId>

<artifactId>jacoco-maven-plugin</artifactId>

<versionRange>[0.7.1.201405082137,)</versionRange>

<goals>

<goal>prepare-agent</goal>

<goal>report</goal>

</goals>

</pluginExecutionFilter>

<action>

<ignore />

</action>

</pluginExecution>

</pluginExecutions>

</lifecycleMappingMetadata>

</configuration>

</plugin>

</plugins>

</pluginManagement>

<plugins>

<plugin>

<inherited>true</inherited>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-deploy-plugin</artifactId>

<version>2.8.1</version>

<configuration>

<updateReleaseInfo>true</updateReleaseInfo>

</configuration>

</plugin>

<plugin>

<groupId>org.jacoco</groupId>

<artifactId>jacoco-maven-plugin</artifactId>

<configuration>

<includes>

<include>com.*</include>

</includes>

</configuration>

<executions>

<execution>

<id>pre-test</id>

<goals>

<goal>prepare-agent</goal>

</goals>

</execution>

<execution>

<id>post-test</id>

<phase>test</phase>

<goals>

<goal>report</goal>

</goals>

</execution>

</executions>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<configuration>

<source>1.7</source>

<target>1.7</target>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

<plugin>

<artifactId>maven-war-plugin</artifactId>

<version>2.4</version>

<configuration>

<webResources>

<resource>

<directory>src/main/resources/${env}</directory>

<filtering>true</filtering>

<targetPath>WEB-INF/classes</targetPath>

</resource>

</webResources>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-release-plugin</artifactId>

<version>2.5</version>

<configuration>

<tagBase>https://127.0.0.1/svn/research/tags/</tagBase>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.9</version>

<configuration>

<includes>

<include>**/*Test*.java</include>

</includes>

</configuration>

</plugin>

<plugin>

<groupId>org.codehaus.sonar</groupId>

<artifactId>sonar-maven-plugin</artifactId>

<version>4.3.1</version>

</plugin>

</plugins>

</build>

参考文件https://svn.gxwsxx.com/svn/gxwscode/trunk/emperor/pom.xml或https://svn.gxwsxx.com/svn/gxwscode/trunk/top-project/pom.xml

应用项目pom.xml添加内容:

<scm> <connection>scm:svn:https://svn.gxwsxx.com/svn/gxwscode/trunk/${project.name}</connection>

</scm>

参考文件https://svn.gxwsxx.com/svn/gxwscode/trunk/web-bank-house/pom.xml

6¡ 打开/usr/local/maven3/confsettings.xml文件,增加如下配置:

<profiles>

<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.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–>

                 <sonar.host.url>http://192.168.100.11:9000</sonar.host.url>

 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

            </properties>

        </profile>

</profiles>

7.编辑<install_directory>/conf/sonar.properties文件

检查sonar端口号:查看是9000还是9001,然后修改对应的文件

配置数据库设置,默认经提供了各类数据库的支持

这里使用mysql,因此取消mysql模块的注释

进入/zhuweiliang/sonar/conf/sonar.properties

打开注释:

#—– MySQL 5.x

# Comment the embedded database and uncomment the following line to use MySQL

sonar.jdbc.url=jdbc:mysql://192.168.100.11:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

8、修改sonar-runner的配置文件

切换至sonar-runner的安装目录下,修改sonar-runner.properties

根据实际使用数据库情况取消相应注释

[java] view plaincopy

#Configure here general information about the environment, such as SonarQube DB details for example

#No information about specific project should appear here

#—– Default SonarQube server

sonar.host.url=http://localhost:9000

#—– PostgreSQL

#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

#—– MySQL

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8

#—– Oracle

#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE

#—– Microsoft SQLServer

#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor

#—– Global database settings

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

#—– Default source code encoding

sonar.sourceEncoding=UTF-8

#—– Security (when ‘sonar.forceAuthentication’ is set to ‘true’)

sonar.login=admin

sonar.password=admin

9、检查sonar防火墙是否已经打开

   /etc/init.d/iptables status

   手动添加防火墙端口

   iptables -I INPUT -p tcp –dport 9000 -j ACCEPT

10.启动服务

 

目录切换至sonar的<install_directory>/bin/linux-x86-64/目录,启动服务

#./sonar.sh start   启动服务

#./sonar.sh stop    停止服务

#./sonar.sh restart 重启服务

至此,sonar就安装好了

在命令行进入到项目文件的目录中去,然后再输入mvn clean install ,mvn sonar:soanr进行测试

访问http:\\localhost:9000即可

11Jenkins配置测试环境和生产环境打包时加入跳过测试代码。

Goals and options :  clean install  -Dmaven.test.skip=true

12、导入项目到sonar

cd /usr/javacode

导入源码

svn co –usrname liuchaoqing –password liuchaoqing https://svn.gxwsxx.com/svn/gxwscode/trunk

/service-let-join

进入到项目根目录:

cd /usr/javacode/service-let-join

mvn clean install

mvn sonar:sonar

解析:mvn clean install是mvn install 和mvn clean 的命令组合使用,删除target目录下编译的内容,后马上进行构建。

mvn sonar:sonar是运行sonar maven plugin来检查项目中的代码。

LEAVE A COMMENT

Captcha Code