Linux服务器Jenkins部署打包Android

news2024/11/18 9:29:21

程序猿日常

记Jenkins部署打包Android

介绍

Jenkins 自动打包 Android 应用,后面介绍打包Flutter应用,然后介绍打包Android原生+Flutter混合应用

准备工作

1.jenkins服务器地址 账户密码
2.项目git地址 访问账号密码
3.ssh 链接服务器账户密码

安装Android环境

  1. Android SDK下载
    国内老版本下载地址
    官网下载地址

     注:两个版本有区别 项目使用jdk11编译建议使用新版官网SDK,jdk8建议使用老版本
    

下载到本地使用使用命令传输到服务器上进行解压

scp -p 端口号 传输文件名  用户名@服务器ip地址:传输到服务器指定目录
端口号22时不用-p
例子 scp -p 22314 ***.zip root@11.111.111.111:/usr
输入ssh密码

传输完成后 使用unzip或tar工具解压
配置服务器环境变量及Jenkins环境变量

ssh -p 端口 root@11.111.111.111
输入密码

vim /etc/profile
source /etc/profile

export ANDROID_NDK_HOME=/usr/20.0.5594570
export ANDROID_HOME=/usr/android-sdk-linux
export FLUTTER_HOME=/usr/flutter
export PATH= A N D R O I D N D K H O M E : ANDROID_NDK_HOME: ANDROIDNDKHOME:ANDROID_HOME/tools: F L U T T E R H O M E / b i n : FLUTTER_HOME/bin: FLUTTERHOME/bin:PATH

在这里插入图片描述

2.Android NDK下载
NDK下载地址
选择相应的版本下载到本地,上传至服务器、解压、配置环境变量,参考SDK

3.CMake下载 (项目没有用到可以不配置)
CMake下载地址

新的androidsdk
进入新sdk/tools/bin目录,执行 sdkmanager --licenses命令

如果使用的老的androidsdk 需要从其它地方拷贝licenses许可文件夹
在这里插入图片描述

Jenkins的cmake配置
安装CMake插件,全局工具配置中配置CMake安装目录
在这里插入图片描述
在这里插入图片描述
4.Gradle安装
安装Gradle插件,全局工具配置中配置需要Gradle的版本
在这里插入图片描述
在这里插入图片描述

创建任务

一.新建任务
在这里插入图片描述
二.配置任务
1.参数化构建过程
在这里插入图片描述
选择添加参数,类型选择Git参数,配置branch
在这里插入图片描述
选择添加参数,类型选择选项参数,配置BuildType
在这里插入图片描述
2.源码管理
在这里插入图片描述

设置项目http的git地址,设置指定分支为 上面配置的参数化构建过程中的分支参数 branch

添加Additional Behaviours 防止git clone超时
在这里插入图片描述
3.构建环境
在这里插入图片描述

在这里插入图片描述
dmhw一般为app,我是修改了主module的名称为dmhw,默认主module名称为app

app:clean
app:assemble${BuildType}

4.构建后操作
在这里插入图片描述
保留打包的apk

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java高级语法】(十)面向对象:掀开Java 的面向对象盖章时代,一起来发现OOP的有趣编程秘密!~

Java高级语法详解之面向对象 1️⃣ 类和对象2️⃣ 三大特性2.1 封装(Encapsulation)2.2 继承(Inheritance)2.3 多态(Polymorphism) 3️⃣ 面向对象编程(OOP)和面向过程编程(PP)4️⃣ 方法重载和方法重写🔍 小结&#x…

MySQL高级SQL语句操作一

MySQL高级SQL语句操作 一、准备环境二、常用操作三、通配符与like1、通配符2、like 四、ORDER BY五、函数1、数学函数2、聚合函数3、字符串函数 六、GROUP BY七、HAVING八、别名(字段別名 、表格別名)九、子查询(连接表格) 一、准…

记录--前端实现文件预览(pdf、excel、word、图片)

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前端实现文件预览功能 需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建…

管理类联考——英语——趣味篇——不择手段——a开头单词

本书分为两个部分。第一部分是核心词汇的讲解,借助谐音、联想、编故事、词根词缀、举例、图画等手段,为每个单词找到它存在的语境,基本上可以让你做到过目不忘。在这一部分中,单词被划分为20个单元,同学们可以每天搞定…

Vue全家桶(五):Vue3快速上手

目录 1.Vue3简介2.Vue3带来了什么2.1 性能的提升2.2 源码的升级2.3 拥抱TypeScript2.4 新的特性 3. 创建Vue3.0工程3.1 使用 vue-cli 创建3.2 使用 vite 创建3.3 Vue3的初始化工程 4. Composition API介绍4.1 Composition API 的优势4.1.1 Options API 存在的问题4.1.2 Composi…

基于STM32 ARM+FPGA的电能质量分析仪方案(一)硬件设计

本章主要给出了本系统的设计目标和硬件设计方案,后面详细介绍了硬件电路的设计 过程,包括数据采集板、 FPGAARM 控制板。 3.1系统设计目标 本系统的主要目的是实现电能质量指标的高精度测量和数据分析,其具体技术指标如 下所示&#xff1…

C++指针对象和异常(12)

异常(exception) 为什么有异常 异常在C用于错误处理,C语言中一般使用返回值表示错误,C对错误处理进行了扩展,统一使用异常机制来处理程序中发生的错误。 C的异常处理包括两个部分 ----- 抛出异常和捕获异常,如果抛出的异常被捕…

​LeetCode解法汇总LCP 41. 黑白翻转棋

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 在 n*m 大小的棋盘中,有黑白两种棋子,黑棋记作字母 &quo…

想去除List重复元素?我有两种方法搞定,赶紧拿去用

关注“Java架构栈”微信公众号,回复暗号【Java面试题】即可获取大厂面试题 问题背景 最近就有很多小伙伴在后台私信波哥,问波哥这样一个问题:“波哥,我最近正在找工作,被面试官问到List该怎么去重?我感觉自…

命令执行测试-业务安全测试实操(12)

命令执行测试 测试原理和方法 在应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的承数。如PHP中的svstem、exec、shell exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。测试中如果没有对参数(如…

Lowe‘s EDI 项目数据库方案开源介绍

近期为了帮助广大用户更好地使用 EDI 系统,我们根据以往的项目实施经验,将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。 …

Flutter如何使用mvi? bloc结合自定义http库的实现

文章目录 前言一、先看看如何使用bloc吧1. 定义页面需要的数据2. 定义通用加载状态3. 定义事件4. 定义bloc5. 定义UI6. 使用 二、lib_http1. request定义2. response定义3. 适配器接口4. 构建adapter需要的数据5. 网络异常统一封装6. 核心请求类7. 提供网络访问配置8. dio适配器…

编译原理笔记13:自上而下语法分析(3)构造预测分析表、LL(1) 文法

目录 构造预测分析表不懂也能用的构造步骤FIRST、FOLLOW 和分析表的原理? LL(1) 文法 构造预测分析表 预测分析表的作用,是为推导的进行指明方向——我们用当前下推栈栈顶和读写头所指向的符号的组合(即当前的状态),去…

网络安全学习指南:新手入门建议

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言网络安全基础知识学…

IPv6:连接未来的新一代互联网协议

由于互联网发展迅猛,IPv4地址数量已经接近枯竭。IPv6应运而生,成为下一代互联网协议。IPv6较IPv4来说,地址容量上升了数倍,并有更好的安全性和效率。 IPv6(Internet Protocol version 6)是指新一代互联网协…

【Java】如何优雅的关闭线程池

文章目录 背景一、线程中断 interrupt二、线程池的关闭 shutdown 方法2.1、第一步:advanceRunState(SHUTDOWN) 把线程池置为 SHUTDOWN2.2、第二步:interruptIdleWorkers() 把空闲的工作线程置为中断2.3、 第三步:onShutdown() 一个空实现&…

PG系列2:Linux下yum安装PG 15

文章目录 一. 下载PG二. 开始安装2.1 安装数据库2.2 初始化数据库2.3 设置开机启动2.4 修改密码2.5 设置允许远程连接2.6 重启数据库服务2.7 修改数据库密码 三. 验证参考: 一. 下载PG 官网地址: https://www.postgresql.org/选择Download 选择CentOS 选择对应的版本 …

iOS 单元测试之常用框架 OCMock 详解

目录 前言: 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock使用限制 三、最后 前言: 在iOS开发中,单元测…

OpenCV——实验结果输出《图像基本操作》

1.图像融合 图像融合主要使用的函数为 cv2.addWeighted() #图像融合 # img_cat img_dog #shapes (414,500,3) (429,499,3) img_dog cv2.resize(img_dog,(500,414))#resize函数,不考虑图像形变问题。 print(img_dog.shape) #两张图片的权重相同,gamm…