美文网首页工作生活
docker上搭建SonarQube + Maven+Jenki

docker上搭建SonarQube + Maven+Jenki

作者: 策划嘞 | 来源:发表于2019-06-29 15:26 被阅读0次

    准备环境

    jdk1.8

    mysql5.7

    maven 3.3.9

    下载sonar相关安装包

    服务端:

    sonarqube:http://www.sonarqube.org/downloads/

    客户端工具:

    sonar-runner:http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.4.zip

    汉化:

    中文汉化包:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.27,下载之后将插件放到sonarqube的extensions/plugins目录下,重启sonar即可。

    将sonarqube、sonar-runner包解压到/usr/local/下

    >>unzip sonar-runner-dist-2.4.zip

    >>unzip sonarqube-7.7.zip

    安装mysql:

    docker上安装mysql5.6

    创建sonar数据库

    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'@'%' ;

    mysql> CREATE USER 'sonar'@'localhost'  IDENTIFIED BY 'sonar';

    mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' ;

    mysql> FLUSH PRIVILEGES;

    修改配置文件

    >>vim   /usr/local/sonarqube-7.7/conf/sonar.properties

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

    sonar.jdbc.username=snoar

    sonar.jdbc.password=snoar

    sonar.web.host=ip地址 #docker的IP

    sonar.web.port=9000

    >>vim /usr/local/sonarqube-7.7/conf/wrapper.conf

    wrapper.java.command=/usr/bin/java ##把wrapper.java.command修改成本机的jdk1.8路径

    >>vim sonar-runner-2.4/conf/sonar-runner.properties

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

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

    sonar.jdbc.username=sonar

    sonar.jdbc.password=sonar

    sonar.sourceEncoding=UTF-8

    sonar.login=admin

    sonar.password=admin

    配置环境变量

    >>vim ~/.zshrc

    export SONAR_HOME=/usr/local/sonarqube-7.7

    export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4

    export PATH=$PATH:$SONAR_RUNNER_HOME/bin

    启动SonarQube

    SonarQube不能以root用户启动,所以必须先创建一个非root用户

    >>useradd sonar

    >>chown -R sonar:sonar sonarqube-7.7/

    启动:

     >>su sonar

    >>./usr/local/sonarqube-6.7.4/bin/linux-x86-64/sonar.sh start

    关闭:

    >>./usr/local/sonarqube-6.7.4/bin/linux-x86-64/sonar.sh stop

    查看启动日志:

    >>tail -f /usr/local/sonarqube-7.7/logs/sonar.log

    登录http://ip:9000

    Maven项目执行sonar扫描

    如下,在maven的 setting.xml中加入SonarQube连接的配置

    <pluginGroups>

          <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

    </pluginGroups>

    <profiles>

      <profile>

              <id>sonar</id>

              <activation>

                  <activeByDefault>true</activeByDefault>

              </activation>

              <properties>

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

                  <sonar.jdbc.url>

                  jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

                  </sonar.jdbc.url>

              <sonar.jdbc.username>sonar</sonar.jdbc.username>

              <sonar.jdbc.password>sonar</sonar.jdbc.password>

              </properties>

      </profile>

    <profiles>

    在需要扫描的目标项目的pom.xml中引入sonar-maven-plugin 插件 

    <plugin>

        <groupId>org.sonarsource.scanner.maven</groupId>

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

        <version>3.6.0.1398</version>

    </plugin>

    在项目根目录下执行如下命令,成功之后即可生成sonar报告,可以去 web页面查看分析结果报告:

    >> mvn install sonar:sonar -DskipTests

    或者 在mvn命令中指定sonar-maven-plugin:

    >> mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar

    Gradle项目执行sonar扫描

    在项目的根目录下build.gradle里加入以下配置

    buildscript {

        repositories {

            mavenCentral()

      //或者 maven {url "https://plugins.gradle.org/m2/"}

        }

        dependencies {

            classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1" //插件后面的版本号可配

        }

    }

    apply plugin: "org.sonarqube"

    sonarqube{

        properties{

            property "sonar.host.url", "http://ip:9000"    //sonarqube 服务器地址

            property "sonar.sourceEncoding", "UTF-8"

            property "sonar.sources", "src"

        }

    }

    配置完成之后,在根目录下执行:

    >>gradle sonarqube --info  

    跳过测试 加 -x testgradle sonarqube -xtest

    在docker上搭建Jenkins(已安装jdk8)

    安装tomcat

    1)mkdir -p /usr/local/tomcat8

    2)cd /usr/local/tomcat8

    3)wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz ##tomcat压缩包版本的版本可按需选择

    4)tar -zvxf apache-tomcat-8.5.38.tar.gz -C .

    5)cd apache-tomcat-8.5.38/bin

    6)./startup.sh #启动tomcat 或 ./shutdown.sh 停止tomcat

    7)ps aux | grep tomcat ##查看tomcat是否启动成功

    安装Jenkins到webapps目录下

    >> wgethttp://mirrors.jenkins-ci.org/war/latest/jenkins.war -P /usr/local/tomcat8/apache-tomcat-8.5.41/webapps

    访问Jenkins主页http://ip:8080/jenkins按说明初始化jenkins即可

    1、关闭Jenkins

    http://ip:8080/jenkins/exit

    2、重启Jenkins

    http://ip:8080/jenkins/restart

    3、重新加载配置信息

    http://ip:8080/jenkins/reload

    相关文章

      网友评论

        本文标题:docker上搭建SonarQube + Maven+Jenki

        本文链接:https://www.haomeiwen.com/subject/qyspcctx.html