![512d860e93bb6b5f7d95584cc57b5b41.png](https://i-blog.csdnimg.cn/blog_migrate/b24056500d52aa9dbf141eeea391927a.jpeg)
一,前置条件:
1.1,配置好JDK,在首页『系统管理』,点『全局工具配置』,找到JDK,请提前申请 oracle 的下载帐号:
![3c3ed70f5767a736b0ea49bc345a4102.png](https://i-blog.csdnimg.cn/blog_migrate/7839e34dc210d96576e1ccd286d36486.jpeg)
![0418ac62975d6223565c0f0de993ecad.png](https://i-blog.csdnimg.cn/blog_migrate/be5ce3db39a3f0d43392c4a6cbf58d88.jpeg)
1.2,配置好Gradle,在首页『系统管理』,点『全局工具配置』,找到Gradle:
![f4f3e25807b6ecc2bf389f06697b445d.png](https://i-blog.csdnimg.cn/blog_migrate/249997af6fa22db4e89ca18e7563bd84.jpeg)
1.3,配置 android 的 sdk 目录以及下载相关文件,在首页『系统管理』,点『系统设置』,找到『全局属性』,键=ANDROID_HOME,值=(根据jenkins 的映射来做):
![44d3c66c33a2cc2217a569bb428389e6.png](https://i-blog.csdnimg.cn/blog_migrate/5b2afc3e542bd25ed8715a63cd21bbc9.jpeg)
1.4,配置android sdk
在https://developer.android.com/studio/index.html 最下面的 仅获取命令行工具,选择android-sdk_r24.4.1-linux.tgz( https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz )进行下载,完成后解压到/disk02/jenkins/tools/android/下。
解压完成后需要更新sdk,进入sdk下的tools目录。
执行 ./android update sdk -h 查看命令说明,
我的更新方式为:
./android update sdk -u -t add-on,extra,platform,platform-tool,tool
1.5,设置SonarQube Runner(用来做代码质量检查),在首页『系统管理』,点『全局工具配置』,找到SonarQube Scanner,如果找不到,请安装 sonarqube 插件:
![af262546dfa3f08bed4c30913bb47910.png](https://i-blog.csdnimg.cn/blog_migrate/10c1004a5aad1d3310010b2aa2a5e86e.jpeg)
1.6,设置SonarQube,在首页『系统管理』,点『系统设置』,找到『SonarQube servers』:
![29b4097c9a5295e7456b4cdc49a4f4f8.png](https://i-blog.csdnimg.cn/blog_migrate/0928cb6ea08b98544da33c6ba7a4b89f.jpeg)
SonarQube installations中的Server authentication token是要通过 SonarQube 服务器新建一个工程时获取,如下图( http://192.168.3.201:9000 ):
![71ef15cd3c929e95620322141e88df3c.png](https://i-blog.csdnimg.cn/blog_migrate/a8dff4a52bd6502d1298c93aa6308012.jpeg)
![01f37b461a911fb8f90b2e32f31062b3.png](https://i-blog.csdnimg.cn/blog_migrate/58a8313d318d27621c7a7cf444d6aa65.jpeg)
![4982b5e0c4bb32b15a799cda928b68fc.png](https://i-blog.csdnimg.cn/blog_migrate/092e5672bfcc97d388a8bea4023bc2c4.jpeg)
二,配置android 工程:
2.1,在首页点『新建任务』,参照以下填写:
![84555c6417752aa0747ec8fb92304b96.png](https://i-blog.csdnimg.cn/blog_migrate/7c3cdc602ca90680646100e4a0288a90.jpeg)
2.2,General
![bfbeaa089133af961694c1f799049f71.png](https://i-blog.csdnimg.cn/blog_migrate/f4fab2a21b1d7114719e7462e0528dd2.jpeg)
2.3,源码管理
![34eb677d0f0614d607998210ff98b303.png](https://i-blog.csdnimg.cn/blog_migrate/19625bcb1c9fe0f790e7bf4468176dc3.jpeg)
2.4,构建
![117426a580bcff859389ff32af359da4.png](https://i-blog.csdnimg.cn/blog_migrate/69c3a83ea13261876307ca9028c057bd.jpeg)
2.5,保存后执行:
![893e6e73397d2914628f27af0b53a508.png](https://i-blog.csdnimg.cn/blog_migrate/fa1e5ec935d76d09f1d1fb3e84ff1331.jpeg)
2.6,查看构建 apk:
![21f186be3261c78edf7c5364f1e24c6a.png](https://i-blog.csdnimg.cn/blog_migrate/a0db63db116aa80103ebb4da86b1b0b8.jpeg)
三,使用SonarQuber来分析代码:
![388414e26216bfd47b92d3d09b9863ef.png](https://i-blog.csdnimg.cn/blog_migrate/4f1dddb1f6ddb52de13cd3ba3e6a7860.jpeg)
sonar.projectKey=hlAppsonar.projectName=hlAppsonar.projectVersion=1.0 sonar.language=java sonar.java.binaries=app/build/intermediates/classessonar.sources=app/src/main/java
点击保存。
sonar.java.binaries
![483575027f18b4b5d233435a610607ef.png](https://i-blog.csdnimg.cn/blog_migrate/50d885986202401b3855ebae1d9ce290.jpeg)
sonar.sources
![1d4e30f1fc15d336b6336312e3164964.png](https://i-blog.csdnimg.cn/blog_migrate/39bb6f104d4c42665d7024eebe518621.jpeg)
成功运行后的结果如下:
![cd2391c9d961ed5ff1ea7423b2d4c0cd.png](https://i-blog.csdnimg.cn/blog_migrate/c9b7d45dedd03d47c6ee17facec55558.jpeg)
![03c3094279a66248a801ff75462ee35c.png](https://i-blog.csdnimg.cn/blog_migrate/498f57f0bd39fb1c41acccb1cefc89e7.jpeg)
最后打开 sonarqube 服务器查看:http://192.168.3.201:9000如下:
![6a4da992d71fe7bc4d0ab0e62d902be9.png](https://i-blog.csdnimg.cn/blog_migrate/d6ad121196cb39c8b7c0b220c07cecfa.jpeg)
可以参照 代码质量管理平台SonarQube系列三:检测 Android 代码
四,踩坑:
3.1:android sdk 安装版本不正确时:
FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring project ':timemachine'.> You have not accepted the license agreements of the following SDK components: [Android SDK Build-Tools 25.0.2, Android SDK Platform 25]. Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager. Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILED
可以看出是因为缺少 [Android SDK Build-Tools 25.0.2, Android SDK Platform 25]
这时执行android list sdk --all 寻找匹配的序号
![940d6722b552aa6fd5df3553967d435f.png](https://i-blog.csdnimg.cn/blog_migrate/b3056f22429b3cf6735f3d8113638885.jpeg)
从上图可以看出匹配的是 3
执行
android update sdk -u -a -t 3
询问时输入 "y" 并耐心等待
Installing Archives: Preparing to install archives Downloading Android SDK Build-tools, revision 25.0.2 Installing Android SDK Build-tools, revision 25.0.2 Installed Android SDK Build-tools, revision 25.0.299%) Done. 1 package installed.
可以看出安装成功,再次执行,如还有错误,重复上面的执行即可。
最好的工具,还要落在实处,每天去重复执行。