Android项目的持续集成:Gradle+SonarQube+Jenkins

来源:互联网 发布:淘宝上黄金是真的吗 编辑:程序博客网 时间:2024/04/30 12:29

升级Jenkins

原有的Jenkins版本过旧,所以需要升级。升级过程比较简单,就是下载了新的jenkins.war丢到tomcat上就完成了。
注意的是新版本的Jenkins要求在JDK8下运行。

升级SonarQube

旧SonarQube是4.xd LST版本,如果根据官方文档要求,必须先升级到5.x LST版本,再升级到6.x版本。由于SonarQube的数据没有保留的必要,所以就直接升级了,同样要求在JDK8环境下运行,所以对配置做了些修改,并顺手配置上了LDAP

修改/usr/local/sonarqube-6.2/conf/wrapper.conf #设置使用JDK1.8wrapper.java.command=/usr/local/jdk1.8.0_65/bin/java修改/usr/local/sonarqube-6.2/conf/sonar.properties#设置使用的数据库,见数据库相关部分#设置整合LDAP#LDAP authenticationsonar.security.realm=LDAPsonar.security.savePassword=falseldap.url=ldap://xxx.xxx.xxx.xxx:389#User Configurationldap.user.baseDn=ou=xxxxx,dc=openldap,dc=fs,dc=comldap.bindDn=cn=Manager,dc=openldap,dc=fs,dc=comldap.bindPassword=xxxxxldap.user.request=uid={0}ldap.user.emailAttribute=email

给Jenkins所在服务器安装Android SDK

搜出来的很多文章都是说到官网直接下载SDK,但现在官网从25.x版本开始已经没有了直接下载的页面,改为先下载SDKManager(command line only)再按需下载工具。

所以最后找到另外一篇文章,提供的是24.x的SDK下载版本,不过只要按照它的做法来升级,一样可以升级到最新版。
http://moonlightbox.logdown.com/posts/2016/02/01/linux-install-android-sdk-in-centos7

集成SonarQube到Gradle

build.gradle上加上以下:

plugins {    id "org.sonarqube" version "2.2"}apply plugin: 'org.sonarqube'sonarqube {    properties {        property "sonar.projectName", "diamond-cfe-android"        property "sonar.projectKey", "diamond-cfe-android"    }}

gradle.properties上加上sonarqube服务器信息

systemProp.sonar.host.url=http://192.168.6.96:9000systemProp.sonar.login=adminsystemProp.sonar.password=admin

根据以下文章提到的方法,把Sonar上的Sonar way和Android Lint两种profile合并为一个,我命名为Sonar and Android Lint way
http://macoscope.com/blog/using-sonarqube-with-jenkins-continuous-integration-and-github-to-improve-code-review/

项目根目录加上sonar-project.properties

# My project------修改成你的项目名称sonar.projectKey=diamond-cfe-androidsonar.projectName=diamond-cfe-androidsonar.projectVersion=1.0# src---------修改成你的源文件夹路径,多个路径逗号隔开sonar.sourceEncoding=UTF-8sonar.sources=app/src/main/javasonar.java.source=app/src/main/java# binDir--------修改成你的二进制文件夹路径sonar.binaries=app/build/intermediates/classessonar.profile=Sonar and Android Lint waysonar.java.binaries=app/build/intermediates/classessonar.android.lint.report=app/build/outputs/lint-results-release-fatal.xml

以上配置后可以使用以下命令测试结果是否生成:
./gradlew sonarqube

添加Jenkins任务

主要讲构建的步骤,根据项目特点,有三个:
1. 执行脚本改写local.properties,目的是保证sdk.dir是指定的路径
echo sdk.dir=/opt/android-sdk_r24.4.1-linux>$WORKSPACE/local.properties
2. 执行Gradle构建
选额Use Gradle Wrapper,勾上Make gradlew executable和From Root Build Script Dir,switches是clean build sonarqube,其他空白
3.执行SonarQube Scanner
JDK一定要使用1.8,如果没有,需要在Manage Jenkins-》Global Tool Configuration的JDK一项配置,建议配置多个JDK方便切换(SonarQube Scanner,Gradle,Maven都可以在这里配置多个)
Path to project properties填上sonar-project.properties

0 0
原创粉丝点击