• Jenkins+sonar+tomcat+SVN集成搭建


     

    一、 文档说明

    本文档用于说明Jenkins+tomcat+sonar+SVN集成分析代码的搭建过程和可能遇到的问题及问题的相关解决办法;本文档针对内部人员公开,搭建过程中一些工作是为远程访问Jenkins、sonar而做,若是在本地服务器搭建则不需要做相关工作;Jenkins和sonar的搭建环境为Linux、mysql、jdk1.7、jenkins、sonar4.5等,相关的版本说明会在后续文档中详细描述。

    二、 jdk1.7安装

    1、 准备jdk安装包

    去官方网站选择你需要的版本,下载rpm包,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ;

    2、 安装jdk

    1)安装rpm包,命令:rpm -ivh jdk-6u45-linux-amd64.rpm

    2)配置JDK环境变量:

    a.[root@localhost tools]# vim $HOME/.bash_profile
    b.添加下面信息:
      #Java Profile

    export JAVA_HOME=/usr/java/jdk1.6.0_45  (按照自己的真实目录)
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=$PATH:$JAVA_HOME/bin
    c.保存退出;

    d.使环境变量生效[root@localhost tools]#source /etc/profile

    e.检测jdk是否安装成功[root@localhost tools]# echo $JAVA_HOME
    /usr/java/jdk1.6.0_45(显示这一行内容表示安装成功)

    或者[root@localhost tools]# java –version

    输入上述命令会下显示jdk的版本,表示安装成功

    三、 sonar安装与配置

    1、 安装sonar

    1)Sonar介绍

    Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

    同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

    此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

    2)下载软件:wget http://dist.sonar.codehaus.org/sonar-3.7.4.zip
    3)解压软件:unzip sonar-3.7.4.zip

    4)配置数据库

    Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:

    这里首先需要配置数据库信息:
      前提是你已经安装了mysql数据库,这里将不做数据库安装的介绍;

    登录数据库命令mysql –uroot -p
    mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
    mysql> grant all on sonar.* to sonar identified by 'sonar'; 
    mysql> grant all on sonar.* to sonar@'192.168.5.105' identified by 'sonar';
    mysql> flush privileges;

    2、 sonar环境配置

    (1)配置文件修改

    [root@localhostdata]# vim home/dev/sonar-3.7.4/conf/sonar.properties

    这里为sonar的安装路径下的conf文件夹里面的sonar.properties)
    修改如下字段(就是配置数据库信息,其他不用动):

    # User credentials.

    # Permissions to create tables, indices and triggers must be granted to JDBC user.

    # The schema must be created first.

    sonar.jdbc.username=root

    sonar.jdbc.password=123456(这里为链接数据库的用户名和密码)

    #----- Embedded Database (default)

    # It does not accept connections from remote hosts, so the

    # server and the analyzers must be executed on the same host.

    #sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

    # H2 embedded database server listening port, defaults to 9092

    #sonar.embeddedDatabase.port=9092

    #----- MySQL 5.x

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

    (备注:sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar若是远程部署,链接数据库的地址建议写为IP地址,有时系统不能解析localhost,以防出错)

    # By default, ports will be used on all IP addresses associated with the server.

    sonar.web.host=192.168.5.105IP地址)

    # Web context. When set, it must start with forward slash (for example /sonarqube).

    # The default value is root context (empty value).

    sonar.web.context=/sonar(默认为“/”,也可以写成“/sonar”;若是“/”,访问时用IP加端口号就可以访问了,若是写成“/sonar”,访问时需在端口号后面加上“/sonar”)

    # TCP port for incoming HTTP connections. Disabled when value is -1.

    sonar.web.port=9001(访问端口号)
    2)启动sonar

    编辑.bash_profile,添加环境变量SONAR_HOME

    $ vi $HOME/.bash_profile

    修改成如下内容:

    PATH=$PATH:$HOME/bin

    SONAR_HOME=$HOME/sonar

    退出

    export PATH SONAR_HOME

    使环境变量生效

    Source $HOME/.bash_profile

    运行如下命令启动sonar,其它操作系统sonar均提供了启动脚本

    $ ${SONAR_HOME}/bin/linux-x86-64/sonar.sh start

    或者在bin/ linux-x86-64/下执行 ./ sonar.sh

    在浏览器中访问: http://localhost:9001/sonar (上下文默认为“/”,上面配置文件中修改为“/sonar”,访问时就加上“/sonar”),运行界面如下:

     

    四、 sonar-runner安装与配置

    1、 sonar-runner的安装

    sonar-runner的安装与sonar一致;先下载安装包,然后解压安装包,再添加环境变量

    编辑.bash_profile,添加环境变量SONAR_HOME

    $ vi $HOME/.bash_profile

    修改成如下内容:

    PATH=$PATH:$HOME/bin

    SONAR_RUNNER_HOME=$HOME/sonar-runner

    退出

    export PATH SONAR_HOME

    使环境变量生效

    Source $HOME/.bash_profile

    2、 sonar-runner的配置

     

    修改sonar.host.url、sonar.jdbc.url、sonar.jdbc.username、sonar.jdbc.password、sonar的登录名和密码,修改成实际的sonar配置

    至此,sonar-runner安装完成

     

     

    五、 Jenkins安装

    1、 Jenkins部署

    jenkins.war文件,直接放置在Tomcat的webapps目录下,启动Tomcat服务;

    修改tomcat下的配置文件server.xml

     

     

    2、 访问Jenkins

    访问:http://127.0.0.1:8010/jenkins

    可以查看到以下界面,jenkins部署完成

     

    3、 遇到的问题及解决办法

    1)tomcat部署Jenkins时不能解压Jenkins文件,是因为tomcat里的server.xml配置文件中多了【xmlValidation="false"  xmlNamespaceAware="false】这两个配置项,删除之后重新启动tomcat可以解决问题

    2)tomcat启动是,部署Jenkins时报错【SEVERE: Failed to initialize Jenkins hudson.util.AWTProblem: java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.】

    解决办法:原因:因为用到了图形处理,java程序会去寻找linux上的图形界面是否启动

    解决:不让java寻找linux图形界面即可,在java 启动时加选项java -Djava.awt.headless=true  

    实现:如果是tomcat,在/tomcat/bin/catalina.sh中修改为

     

    JAVA_OPTS=-Djava.awt.headless=true

     

     

    六、 Soanr与Jenkins集成

    1、安装sonar jenkins plugin 插件

       Jenkins的插件管理中选择sonar jenkins plugin ,该插件可以使每次构建时都调用sonar进行代码度量

      进入配置页面对sonar插件进行配置,如下图:

     

    2、构建项目

    点击新建

     

    输入项目名称:

    输入SVN地址:

     

    Svn地址有中文,需要配置如下:

        

    增加构建配置中选择 invoke standalone sonar analysis,并按照如下配置(注意设置Encoding编码,根据要分析的代码编码格式设置)

    点击保存,进入主页面,可以看到新建的项目,点击项目右边的小箭头,点击立即构建,即开始从SVN下载源码

     

    点击项目运行结果

     

    点击console  output即

    可查看控制台打印结果。

     

     

    应用程序构建时就会自动触发Sonar对代码的检查,通过访问sonar即可查看分析结果

     

    3、 遇到的问题及解决办法

      Jenkins与sonar集成时需要安装插件,在Jenkins插件管理里面不能安装插件是可以去【https://wiki.jenkins-ci.org/display/JENKINS/SonarQube+plugin】下载插件,然后上传到Jenkins插件管理里就可以了

     

     

  • 相关阅读:
    .NET Core HttpClient调用腾讯云对象存储Web API的"ERROR_CGI_PARAM_NO_SUCH_OP"问题
    .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
    腾讯云短信服务使用记录与.NET Core C#代码分享
    .net core中使用Type.GetType()从字符串获取类型遇到的问题
    阿里云不同账号之间相同地域的VPC网络互访
    ASP.NET Core 实现用户登录验证的最低配置
    体验 ASP.NET Core 中的多语言支持(Localization)
    .NET Core 2.0 单元测试中初识 IOptionsMonitor<T>
    体验 PHP under .NET Core
    docker swarm:执行 service update 过程中服务短暂不能访问的问题
  • 原文地址:https://www.cnblogs.com/ricebug2/p/11515596.html
Copyright © 2020-2023  润新知