jenkins 指定版本打包_Jenkins 系列 -- 创建第一个打包项目

news/2025/2/25 14:41:42

上一篇我们安装好了 Jenkins 设置了管理员用户。这一篇我们将实现第一自动化打包,迈出了我们成功的第一步。

全局工具配置

Manage Jenkins -->Global Tool Configuration

一: jdk 安装

可选择自动安装或设置使用本地的jdk如下。当勾选Install automatically 时,系统会自动从官网下载对应版本的jdk。如果选择使用本地安装的jdk ,需要把系统的JAVA_HOME的值填写到这里的JAVA_HOME框中。别名可以随意,只要你能识别的出来就可以了。

jenkins_jdk_1

二:git 安装

Mac 平台可使用命令which git 查找 git 的路径 。

jenkins

三: gradle 安装

同样的方式安装 gradle ,可以选择与项目使用的gradle 相同的版本进行安装。或直接使用本地的gradle

image

全局属性配置

Manage Jenkins -->Configure System -->全局属性

设置全局属性 ANDROID_HOME(可以叫其他名字吗?貌似不可以), 值为你本地sdk 路径。记得勾选Environment variables,如下所示。

jenkins_global_1

打包

到这里基本配置已经完成。可以建项目进行打包了。

创建一个自由风格的项目

新建item-->Freestyle project 输入构建项目名称,如test,确定即可。

jenkins_1

源码管理

在弹出界面,点击源码管理菜单。选择Git

jenkins_2

首先我们需要在 Respository URL 栏填入git仓库的地址。

Branch to build可以指定分支,如*/master

Credentials 框需要选择一个凭证。点击后面的 添加按钮即可添加凭证。 如下

jenkins_3

添加 Jenkins 凭据提供者

点击添加按钮后会弹出如下输入框

jenkins_4

类型: 这是下拉选择框,我们选择 UseName with password

范围: 默认就好

用户名: 我们这里添加的是git 凭证,所以需要输入git 的登录账号

密码:git的登录密码

ID: 可以空着

描述: 相当于别名,取一个你可以区分的名字就可以了,如 myGithub.

点击添加后就可以添加成功

构建

点击增加构建步骤,选择Invoke Gradle Script.

在出现的Invoke Gradle Script界面有两个选项。Invoke Gradle 和 Use Gradle Wrapper两种方式进行构建。这个具体我们在下面分析。

在Tasks 框输入我们要执行的打包命令clean assemble,如下所示。

jenkins_7

1.Invoke Gradle:直接调用gradle 脚本进行构建。

直接使用gradle 进行构建,就需要指定gradle 版本。我们前面设置或下载了哪些版本的gradle,这里就可以使用哪些版本的

image

2.Use Gradle Wrapper,使用本gradle wrapper进行构建。

Gradle Wrapper 是什么呢?

为什么就不需要指定gradle 版本 。Gradle Wrapper是gradle 的包装器。实质上它就是一个脚本,方便我们调用gradle 的。它会调用配置文件中指定版本的gradle完成相应的任务。如果你的电脑里没有该版本的gradle,他会下载这个版本的gradle。这么 做有什么好处呢?不用手动下载,节约时间、节约资源,可以偷懒。

那是用gradle wrapper 是怎么构建的呢?

这玩意在哪里呢?我并没有下载这个玩意啊?这脚本在哪里?我们打开自己的安卓项目。

jenkins_gradlew

就是这个gradlew 文件,就是这个脚本。我们在Androidstudio中执行./gradlew命令也是调用它。这个脚本的配置文件是什么呢?就是gradle-wrapper.properties。这里面指定了gradle的版本等相关信息。每个项目上传的时候这些文件都会上传到git 仓库。所以我们通过jenkins从Github 上 clone 下来的代码里也是有这些文件。所以Use Gradle Wrapper构建,实质上就是调用gradlew脚本构建。我们这里就选用这种打包方式。

打包好的文件在哪里

每个项目都会自动创建一个工作空间,git clone 下来的代码,打包好的文件等都存放在这里。

jenkins_8

总结

到这里我们就打包成功了,当然这是最简单的打包。 我们仅仅实现了让Jenkins 使用git 从代码仓库把代码clone 下来,然后执行gradle命令进行打包。但打包好的文件都在工作空间里,不方便下载。这些问题我们在后续章节解决它。


http://www.niftyadmin.cn/n/712645.html

相关文章

洛谷P1443-马的遍历(BFS)

题目描述&#xff1a; 有一个n*m的棋盘(1<n,m<400)&#xff0c;在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入格式&#xff1a; 一行四个数据&#xff0c;棋盘的大小和马的坐标 输出格式&#xff1a; 一个n*m的矩阵&#xff0c;代表马到达某个…

HDU 2050:折线分割平面(找规律,递推)

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2050 此题是有规律的: f(n)2n2−n1可以参考《具体数学》&#xff0c;即《Concrete Mathematics》1.2节 #include <iostream> using namespace std;int main() {int cases, n;cin >> cases;while …

php标准输出文件功能

为什么80%的码农都做不了架构师&#xff1f;>>> <?php $file monkey.gif;if (file_exists($file)) {header(Content-Description: File Transfer);header(Content-Type: application/octet-stream);header(Content-Disposition: attachment; filename.basenam…

hadoop集群不用重启集群使配置生效及配置查询

1、修改配置生效 hadoop dfsadmin -refreshNodes 2、查看配置 hdfs:http://172.16.10.10:50070/conf yarn:http://172.16.10.10:8088/conf 转载于:https://www.cnblogs.com/stone1989/p/10840813.html

UVA439-骑士的移动 Knight Moves(BFS)

AC Code&#xff1a; #include<bits/stdc.h> using namespace std; #define N 101 struct node {//定义结构体 int x,y,s;//分别为该点的横坐标、纵坐标、步数 }que[N*N]; int book[N][N];//标记数组 int dx[]{-1,-2,-2,-1,1,2,2,1};//马可以向8个方向移动 int dy[]…

高并发高流量网站架构

2019独角兽企业重金招聘Python工程师标准>>> Web2.0的兴起&#xff0c;掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念&#xff0c;细分了网站功能和用户群&#xff0c;不仅成功的造就了一大批新生的网站&#xff0c;也极大的方便了上网的人们。但…

HDU 2084:数塔(动态规划)

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2084 很简单的DP #include <iostream> #include <memory.h> #define MAXHEIGHT 105 using namespace std; int d[MAXHEIGHT][MAXHEIGHT]; int nums[MAXHEIGHT][MAXHEIGHT]; int cases, height;in…

pep8 python 编码方式_PEP8 python 编码规范整理

决定开始Python之路了&#xff0c;利用业余时间&#xff0c;争取更深入学习Python。编程语言不是艺术&#xff0c;而是工作或者说是工具&#xff0c;所以整理并遵循一套编码规范是十分必要的。PEP8 python 编码规范一.代码编排1.缩进、4个空格的缩进(编辑器都可以完成此功能)&a…