Android使用Jenkins入门(Nginx代理插件)

参考
https://www.jianshu.com/p/38b2e17ced73
https://blog.csdn.net/binbinqq86/article/details/81033707
https://www.jianshu.com/p/b99c1ee2ea3e

以前听说过Java后端使用Jenkins持续集成/持续交付,但是没有具体使用过。今天在Android群里看到别人做自动化测试的时候提到了Jenkins。自动化测试和持续集成我都没有使用过,感觉差距好大。决定体验一下Jenkins,记录一下学习过程

下载

Jenkins官网https://jenkins.io/zh/
首先下载,然后傻瓜式安装

安装插件

然后用浏览器打开http://localhost:8080,由于是第一次安装,我选择的是安装默认插件,后来我发现默认下载插件的方式是真的慢,不是一般的慢,没仔细看这一步能不能跳过,到后面进行相关配置后在下载所需要得插件

Android使用Jenkins入门(Nginx代理插件)_第1张图片
image.png

插件都不大,但是大部分插件都安装失败,关于插件安装失败

  • 在线安装插件
  1. Update Site升级网站的URL修改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    Android使用Jenkins入门(Nginx代理插件)_第2张图片
    image.png

    打开F:\Jenkins\updates\default.json文件,这个文件就是Update Site的插件更新信息,虽然Update Site修改为清华镜像,但是实际插件下载地址不是清华镜像,而是http://updates.jenkins-ci.org/download/plugins如图所示
    Android使用Jenkins入门(Nginx代理插件)_第3张图片
    image.png
  2. 我用浏览器打开插件地址,比如http://updates.jenkins-ci.org/download/plugins/AnchorChain/1.0/AnchorChain.hpi发现可以下载,那为什么在线更新软件失败呢,于是我把F:\Jenkins\updates\default.json文件中的connectionCheckUrl修改为https://www.baidu.com/如图所示
    Android使用Jenkins入门(Nginx代理插件)_第4张图片
    image.png

    经过上述修改我发现插件可以下载了。此时,如果还是有些插件下载不下来可以使用离线安装的方式
  • 离线安装插件
    打开清华大学镜像网站https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
    如果所示
    Android使用Jenkins入门(Nginx代理插件)_第5张图片
    image.png

    在这下载所需要的插件,下载后是.hpi文件,然后安装离线插件,如图所示
    Android使用Jenkins入门(Nginx代理插件)_第6张图片
    image.png

    这里说明一下,一般插件会依赖别的插件,要先安装依赖的插件,如图所示
    Android使用Jenkins入门(Nginx代理插件)_第7张图片
    image.png

    上图是说安装Pipeline插件的时候找不到pipeline-build-step插件,所以我们在清华镜像网站下载pipeline-build-stepPipeline插件,安装的时候先安装pipeline-build-step再安装Pipeline
  • 使用Nginx设置代理安装插件
  1. 修改C:\Windows\System32\drivers\etc\HOSTS文件127.0.0.1 updates.jenkins-ci.org
    Android使用Jenkins入门(Nginx代理插件)_第8张图片
    image.png
  2. 修改nginx配置文件
server {
        listen       80;
        server_name  updates.jenkins-ci.org;
        location /download {
        proxy_pass https://mirrors.tuna.tsinghua.edu.cn/jenkins/;
        }
    }

此处有个注意的地方,修改完配置文件,记得把nginx进程全部杀,然后双击nginx.exe重启

Android使用Jenkins入门(Nginx代理插件)_第9张图片
image.png

基本配置

打开Global Tool Configuration选项
1.配置Git

Android使用Jenkins入门(Nginx代理插件)_第10张图片
image.png

  1. 配置JDK


    Android使用Jenkins入门(Nginx代理插件)_第11张图片
    image.png
  2. 配置Gradle
    Android使用Jenkins入门(Nginx代理插件)_第12张图片
    image.png

    此处有一个注意的地方GRADLE_HOME目录为bin目录的上一级目录,否则会报Can't retrieve the Gradle executable错误
  3. 配置Maven
    方便以后用到,我这里顺便把Maven也配置了一下


    Android使用Jenkins入门(Nginx代理插件)_第13张图片
    image.png

创建项目

Android使用Jenkins入门(Nginx代理插件)_第14张图片
image.png

配置项目的远程仓库地址
增加凭据,我采用SSH Username with private key的方式。
Android使用Jenkins入门(Nginx代理插件)_第15张图片
image.png

Android使用Jenkins入门(Nginx代理插件)_第16张图片
image.png

Android使用Jenkins入门(Nginx代理插件)_第17张图片
image.png

  • gradle assembleDebug 只打debug
  • gradle assembleRelease 只打release
  • gradle assemble 同时打debug和release
  • gradle installDebug 要构建 APK,并立即在运行的模拟器或连接的设备上安装

构建项目

Android使用Jenkins入门(Nginx代理插件)_第18张图片
image.png

然而发现app目录下并没有build文件夹,也就没有生成apk文件


Android使用Jenkins入门(Nginx代理插件)_第19张图片
image.png

下面记录解决这个问题的时候遇到的问题

  1. 'annotationProcessor' dependencies won't be recognized as kapt annotation processors
    image.png

    解决方法annotationProcessor修改为kapt
    Android使用Jenkins入门(Nginx代理插件)_第20张图片
    image.png
  2. Task 'assembleDebug' not found in root project


    Android使用Jenkins入门(Nginx代理插件)_第21张图片
    image.png

    配置ANDROID_HOME


    Android使用Jenkins入门(Nginx代理插件)_第22张图片
    image.png
  3. java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    Android使用Jenkins入门(Nginx代理插件)_第23张图片
    image.png

    JAXBException这个类在后来得版本删除了,解决方式 jdk版本修改为8
  4. AAPT2 aapt2-3.5.2-5435860-windows Daemon #0: Daemon startup failed
    Android使用Jenkins入门(Nginx代理插件)_第24张图片
    image.png

    解决方式:配置GRADLE_USER_HOME环境变量表示gradle本地仓库路径(这个路径不能太长,不然可能还是报错)
    Android使用Jenkins入门(Nginx代理插件)_第25张图片
    image.png

    参考https://stackoverflow.com/questions/51588521/jenkins-execution-failed-for-task-appmergedebugresources有问题还是得上stackoverflow
    然后继续构建,成功
    Android使用Jenkins入门(Nginx代理插件)_第26张图片
    image.png

以上应该是Jenkins最基本得使用,我用Android Studio或者命令行构建也可以,还体现不出作用,我们继续往下看

定制功能(有时间再体验Jenkins的更多功能)

这里我们先安装插件git-parameter和zentimestamp

你可能感兴趣的:(Android使用Jenkins入门(Nginx代理插件))