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
- Android项目的持续集成:Gradle+SonarQube+Jenkins
- Jenkins + Gradle + SonarQube 项目持续集成并分析环境搭建
- Jenkins + Gradle + SonarQube 项目持续集成并分析环境搭建
- Android持续集成--JENKINS+GRADLE+JACOCO+SONARQUBE(一)
- Android持续集成--JENKINS+GRADLE+JACOCO+SONARQUBE(二)
- Android持续集成--JENKINS+GRADLE+JACOCO+SONARQUBE(三)
- Android持续集成--JENKINS+GRADLE+JACOCO+SONARQUBE(四)
- 配置SonarQube,Jenkins集成扫描Android项目
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle+pgyer的android持续集成
- 基于Jenkins+Git+Gradle的Android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 基于Jenkins+git+gradle的android持续集成
- 安装Git
- POJ 2187 Beauty Contest (凸包)
- Ubuntu 14.04 搭建 apt-get 服务器
- SSH学习(七)Struts2输入验证
- 解决tomcat服务器无法启动-java.net.BindException 端口被占用问题
- Android项目的持续集成:Gradle+SonarQube+Jenkins
- JSON的遍历方式
- LeetCode 374. Guess Number Higher or Lower
- Sizeof与strlen区别以及用法
- DBA
- 深挖SpringMVC_06_SpringMVC文件上传
- AppBarLayout、CollapsingToolBarLayout、ToolBar组合实现狂拽屌炸天头部效果
- 从QQ浏览器缓存文件中提取出完整的视频
- C++数据序列化之MessagePack