Mac上搭建Jenkins自动打包工具带submodule,参数传递,上传到fir.im,钉钉通知

git submodule在jenkins上使用的坑 submodule是个好东西,配合构建工具的模块化功能在提取代码公共模块非常好用 本地用起来虽然非常爽,但是如果配合jenkins自动化构建就会有一些坑 例如子模块的分支选取,递归update,等问题 默认submodule的分支选取是坑爹的,如果不指定分支则会读取master分支下的代码或者是head游离态下的代码 下面贴下jenkinsfile拉取代码部分的脚本 checkout scm g... 阅读详情

1.工具下载

 

    1.ApacheTomcat下载:https://tomcat.apache.org/download-90.cgi 下载zip,tar。用工具或者命令tar -zxvf解压

    2.Jenkins.war下载:https://jenkins.io/download/ 找到.war文件下载

    3.JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

    4.Android SDK,ndk下载:安装Android studio 通过as里面的工具下载

2.环境配置

 

    1.在Mac系统的命令终端输入 vim .bash_profile 输入。配置SDK,NDK,gradle,JDK 环境。

 

     export PATH=$PATH:/Users/用户名/Library/Android/sdk/platform-tools
     export PATH=$PATH:/Users/用户名/Library/Android/sdk/ndk-bundle
   export PATH=$PATH:/Users/用户名/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3/bin
    export PATH=$PATH:JDK路径 
    对于Android项目有NDK模块的必须配置NDK环境。比如PDF模块,视频播放模块,或者C++加密模块一般会携带NDK模块。因此配置NDK在这种情况下也是必须的。

3.Jenkins搭建以及配置

    1.将ApacheTomcat解压缩,将Jenkins.war放入解压缩的Tomcat文件下的webapps中。

    2.给Tomcat的bin目录下的.sh添加权限 命令:chmod 555 *.sh。 运行./startup.sh。可以看到启动log。再在浏览器中输入localhost:8080可以看到Tomcat的欢迎页。证明Tomcat配置好了。

    3.在浏览器的地址后面加上localhost:8080/jenkins/。出现Jenkins初始化的提示。Jenkins初始化后会有一个秘钥写在了.jenkins 文件下。初始化完成后界面会有路径提示,将秘钥考入到对话框中进入下一步配置。

填写完密码后,将会看到插件安装界面,按照系统默认Jenkins插件安装就行了 。

等所有插件安装完成后,我们将会看到用户名设置界面设置用户名和密码,最好用户设置一个用户名和密码不然可能以后会出现不能登录的情况。等所有的步骤都操作完毕后,将会看到一个提示有“jenkins is ready!”的界面。则Jenkins的插件和管理员已经配置好了。

      4.额外插件配置。方法如下:

        在主页找到:系统管理-->管理插件-->可选插件(available)找到

        1.git plugin。2.android lint plugin。3.Gradle Plugin 这三个插件选择安装

      5.全局配置。

 

Jenkins插件下载地址

1. 官网地址:

2. 清华镜像地址:

 

4.Jenkins新建项目

1.在Jenkins中选择新建项目

    2.选择新建项目的类型。一般选择构建自由风格的软件项目够用了。但是我这边的Android项目带有submodule模块于是选择了构建一个多配制的项目。

点击确定就OK了。

4.git配置带submodule处理

 

   在Jenkins主界面选择项目。点击进入项目后点击配置。找到配置中的源码管理于是出现了如下界面。

   1. 选择git类型的源码管理。

   2. 将git的路径填到repositories 中的RepositoryURL 中。这个步骤后需要处理.ssh秘钥的问题。我这边处理的是将我自己开发电脑上的.ssh秘钥考到打包的mac电脑上。需要处理一下.ssh的访问权限,通过chmod 减小.ssh的访问权限。

   3. 设置打包用的分支。

   4.将这两个选项勾上。submodule中的内容也会检测更新。

 

5.参数传递

1. 在General中选择参数化构建过程。填写动态改变的参数。并且定义三个参数 ENVIRONMENT,VERSION_TITLE,VERSION_NUMBER

 

 

2.在构建模块通过gradle命令将配置参数传到Android项目的gradle配置中。配置如下:

网上的其他Jenkins有个选项可以传递参数,但是我这个版本的Jenkins没有找到这个选项。

 

3.在Android 项目的gradle中配置

1.在gradle.properties中定义这几个名字相同的变量并且写上默认的数据

2. 如果项目的build.gradle 不是用的这个配置而是用的根目录下的build.gradle  中的参数。可以使用如下方式传递参数

 

6.上传到fir.im

1. 下载fir.im的Jenkins插件

2. 配置构建后的操作。

7.钉钉通知

1.配置Jenkins上的钉钉通知插件

2.在钉钉上建一个群,在群里开启一个钉钉机器人获取机器人的accesstoken。

3.在构建完成后操作步骤上配置钉钉机器人

 

8.添加对git分支的选择

1.在全局插件管理中 添加插件 git parameter 

2.在项目的参数构建中,选择 git parameter 对新出现的模块添加 参数名称 描述 选择branch

3.在git管理中将branch选项填上 ${ 参数名称}

 

 

 

启动

service jenkins start
1
重启

service jenkins restart
1
停止

service jenkins stop
1
此外,还有直接使用url的方式,不过当然不包括启动(此时服务还未启动),只需要在访问jenkins服务器的网址url地址就可以了
此处假定 jenkins部署在本机,端口为 8080

浏览器进入Jenkins,登录

http://localhost:8080/
1
关闭Jenkins

http://localhost:8080/exit 
1
重启Jenkies

http://localhost:8080/restart 
1
重新加载配置信息

http://localhost:8080/reload 
1

Jenkins流水线极速打包 在java环境中使用gradle环境中的打包。需要注意的是,以上的“java8”和“gradle-6.5.1”都是在Jenkins中进行安装时,起的名字,指向的是具体的插件,而不是这里填什么Jenkins下载什么。在使用Jenkins流水线进行打包时,发现直接使用Dockerfile去构建一个java或者go程序会非常慢,go好一点也要一分钟,java则需要3分钟以上。在上述构建中,最慢的步骤是gradle的build,如果选择使用服务器进行打包,再将打好的jar包直接构建成docker镜像。 阅读详情

相关推荐

从YOLOv8到RTDETR:如何将训练后的YOLO指标无缝转换为COCO格式

本文详细介绍了如何将训练后的YOLOv8指标无缝转换为COCO格式,特别适用于RTDETR模型的评估。通过数据准备、指标转换流程和实际项目经验,帮助开发者解决YOLO与COCO指标差异问题,提升模型评估的准确性和权威性。

weixin_29085151的博客 378

Jenkins配置git打包时出现submodule错误

如下: Unable to checkout '111c7b4fb941a7c03b2c6466b111d0939e3de58e' in submodule path 'src/main/resources/***' at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2372)...

search1985的专栏 3581

FreeModbus源码详解

本篇按照FreeModbus协议栈的工作流程,对源代码进行总结解析;FreeModbus协议栈作为从机,等待主机传送的数据,当从机接收到一帧完整的报文后,对报文进行解析,然后响应主机,发送报文给主机,实现主机和从机之间的通信; 1:demo.c中三个函数,完成协议栈的准备工作; eMBInit()函数:(mb.c) /*函数功能: *1:实现RTU模式和ASCALL模式的协议栈初始化; *2

2万+

使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题

道哥的第 030 篇原创 文章目录一、一个真实的代码泄漏故事二、Jenkins 的基本使用1. Jenkins 是什么?2. 安装 JDK83. 安装 Jenkins4. 在浏览器中配置 Jenkins5. 在 Jenkins 中配置一个小项目6. 手动触发编译一次三、git submodule 基本使用1. git submodule 是什么?2. 利用三个小项目,来测试一下 submodule 的用法3. 在一个空目录中来编译、验证一下可行性四、在 Jenkins 中使用 git module 来编.

IOT物联网小镇 2251

NVIDIA DGX Spark实战指南:从开箱到AI模型高效部署

本文详细介绍了NVIDIA DGX Spark的开箱体验、硬件架构及AI模型高效部署实战指南。从1 PetaFLOP算力的迷你设备到Grace Blackwell超级芯片的深度解析,再到五分钟快速上手指南和大模型部署技巧,帮助开发者充分利用这款全球最小AI超级计算机的性能优势。

weixin_29239279的博客 1364

【超详细】数据分析笔试题分享,可以收藏后仔细阅读_数据分析岗位笔试题目

这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。15、在某座城市出现了某种流行病,且已知某座城市男女人数相同,男性患该病的概率为5%,女性为0.25%,现已知该城市的小明得了此病,请问小明为男性的概率是() B。D项,使用方差作为特征评分标准,如果某个特征的取值差异不大,通常认为该特征对区分样本的贡献度不大,因此在构造特征过程中去掉方差小于阈值的特征。LTV,用户生命周期价值,是产品从用户获取到流失所得到的全部收益的总和。

2401_89824744的博客 948

git jenkins 子目录_git 操作以及submodule模式详解,附加jenkins对submodule方式的集成...

git常用命令注意:请确保已经安装里git客户端git使用帮助git --help //git使用帮助,可以查看git使用指令一般配置git --version //查看git的版本信息git config --global user.name 'username' //配置当前登录的用户git config --global user.email 'email' ...

weixin_34237941的博客 1365

OpenClaw使用ClawHub安装skill网络不稳定?Rate limit exceeded报错?试试这个国内高速镜像工具!

使用 ClawHub 安装 Skill 时遇到 🌐 网络不稳、❌ Rate limit 或命令不可用?使用这个镜像工具,轻松解决skill安装问题,⚡

XiaoqiangClub的博客 1260

jenkins+git submodule拉取最新提交

jenkins+git submodule拉取最新提交

佳佳鸽的博客 1351

Android开发工程师(IOT)面试指南与参考答案

【摘要】绿联科技招聘Android开发工程师(IOT方向),要求5年以上Android开发经验,精通Kotlin/Java,熟悉IOT设备交互及跨平台开发。岗位职责包括客户端开发维护、技术调研及性能优化等。核心考察点包括:Kotlin协程在IOT低功耗场景的应用、多协议设备连接层设计、音视频性能优化及离线架构实现。重点技术涉及蓝牙Mesh群控、BLE功耗优化及ReactNative混合开发。需具备GooglePlay合规经验,熟悉Android13+权限管理,并能提供量化性能优化案例。

郑伟强dev的专栏 721

【优化求解】基于matlab粒子群算法PSO确定最佳开关角对称级联多层逆变器【含Matlab源码 13080期】

粒子群算法PSO确定最佳开关角对称级联多层逆变器 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 97

Jenkins中使用git submodule时报fatal: could not read Username for ‘xxxx‘: No such device or address的解决方案

【代码】Jenkins中使用git submodule时报fatal: could not read Username for 'xxxx': No such device or address的解决方案。

罗伯特祥的博客 2645

【HALCON工业视觉应用探索】10. C#+Halcon 3D视觉实战:点云处理与三维测量工业指南(附完整代码与实操案例)

摘要:本文聚焦C#+Halcon在3D视觉领域的工业应用,从新手友好的“基础3D检测系统”切入,逐步深入“汽车铸件三维测量”等工业级场景。内容涵盖核心概念(点云数据结构、3D采集原理、坐标系统)、完整技术流程(数据采集→预处理→特征提取→三维测量→结果可视化)、工业级代码实现(多视角点云融合、微缺陷检测、高精度尺寸测量),以及现场落地关键技巧(硬件选型、标定流程、抗干扰优化)。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2004

Jenkins使用Git Submodule

项目的版本库在一些情况下需要引用其他的版本库,例如公用的代码库,可以在多个项目中调用,而公用库本身也是一个git的版本库,这个时候可以使用git子模组(Git Submodule)解决,Git Submodule允许将一个git repostory以目录的形式做为另一个git repostory的子目录。可以参考:https://segm...

weixin_34226182的博客 1421

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

转--使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题

Jenkins + git submodule

天道酬勤 735

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【jenkins】jenkins上使用Git Submodule管理子模块

在源码管理这里,新增以下配置 Use credentials from default remote of parent repository 是指更新的子模块,需要使用和主模块一样的认证。 此项目主模块在gitlab上加了公钥 需要子模块在gitlab上也加上同样的公钥 ...

intelrain的博客 9万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(一) JenKins自动打包 参数配置

JenKins的参数配置 1.创建一个任务 2.配置正确的参数 1 介绍 2 保存的天数 3高级设置 3.点击高级设置就会弹出下面画面,我们需要设置下工程的目录,和在外部显示的名称,还是很重要的,会跑不起来的。 4.点击保存,回到主界面 就会发现 多了一个我们刚刚创建的工程 5.我们还是回到刚刚配置参数界面 创建一个string参数 设置想工程目录的简称 因为下面写 bat命令的时候会用到...

你只管努力,其他的,交给天意! 1662

jenkins中submodule的使用

尝试过各种插件配置都不行. 最后只好通过命令来更新Submodule了. 首先把Git更新到最新,为什么要更新等会儿再说. 项目里的Submodule要配置好,这是基本的. (检查是否配置好的方法: 进入到项目根目录下, 打开CMD输入命令:git submodule, 如果能打印出类似这样的 说明正确) 在Jenkins的Job配置里, 添加Choice变量Branch, 方...

aitaogai0425的博客 722

0085__使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题

https://www.cnblogs.com/sewain/p/14605019.html

行潇 223

Jenkins中配置多项目SCM

有的时候我们的项目依赖其他很多子项目,我们想在jenkins配置让这些子项目也加入到SCM中来,如何做到? 下载插件Multiple SCMs Plugin插件,安装后重启Jenkins server.配置SCM 在job配置界面找到Source Code Management模块,选择 Multiple SCMs选项: 选择Add SCM 选择你管理源码的工具,我用的是github,所以我选择g

doctorq 2万+

Java Maven打包总结(Jenkins多模块编译部署)

欢迎关注个人公众号 DailyJobOps 原文地址:Java Maven打包总结(Jenkins多模块编译部署) 1、maven 打包的不一样 maven打包时,一般用到的命令有 mvn clean package, mvn clean install , mvn clean deploy 三种,具体的细节如下 mvn clean package 依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。.

Colinspace 5711

使用Jenkins下载submodule代码

使用Jenkins下载子模块代码 简介 有时候我们的项目管理使用到git的submodule创建子模块,但是在Jenkins构建的时候可能不知道如何将子模块代码下载到服务其中执行,这里就简单介绍以下同一分支下将子模块代码构建起来的配置。 在Jenkins配置页面依次点击。 勾选这两项: 更新子模块 使用父模块认证方式 ...

pytho_rookie的博客 806

根据已有.submodules构建项目自动添加python脚本

新项目使用 import configparser import os config = configparser.ConfigParser() config.read('.gitmodules') sections = config.sections() for section in sections: path = config[section]['path'] url = config[section]['url'] cmd = 'git submodule add {} {.

亱語的博客 364

关于git submodule使用在jenkins中执行npm run submodule报错

先发报错信息 :fatal: could not read Username for xxxx No such device or address; 当项目中用到submodule子模块去构建项目时;在jenkins部署时,报出了上述错误; 刚开始粗浅的没看log日志 以为是公司项目从public改为 private时,submodule出了问题; 所以开搞submodule 1.删除项目子模块 rm -rf module name | rm -f .gitmodules 这两个命令都可以; 2.重

weixin_43674509的博客 1165

Manven简介

Maven是一个 项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个 项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中 插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个...

weixin_34354945的博客 425

git 子模块以及 在 Jenkins中如何使用

1.添加子模块 2.克隆带有子模块的项目 3.子模块仓库有更新,要用最新的子模块代码 4.修改子模块文件内容后,提交更新 5.修改子模块的 url 6.删除子模块 7.Jenkins配置 git 子模块

狼族小子的专栏 1万+
上一篇: Android UI总结 Android 和H5 字体大小适配
下一篇: android多音字转拼音工具分装
MatrixGame
博客等级 码龄9年 40粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MatrixGame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值