jenkins发布java项目

过程参考发布vue项目。https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异。

vue建立的是Freestyle project,构建环境选择node

java建立的是maven project,构建环境使用maven

1。配置全局工具中maven

maven及maven私服安装参考:https://www.cnblogs.com/jxd283465/p/11548593.html

配置maven的配置文件

配置jdk安装路径

配置maven安装路径

2。新建maven项目

3。配置项目描述、git参数

4。配置源码管理git

如果使用sonar插件一定要配置Name

Branch Specifier为上方参数化构建的name,$表示调用参数

5。配置触发器

当提交代码到gitlab时,自动触发jenkins自动发布

gitlab webhook配置

6。配置构建环境

7。配置启动shell

勾选 “Run only if build succeeds”,当项目构建成功执行shell

cd /home/jenkins/.jenkins/workspace/MingByteSiteApi
bash /home/jenkins/jenkins.sh 192.168.8.10:5000/mingbytesiteapi MingByteSiteApi
mvn package -DskipTests mvn dockerfile:build
echo '================开始推送镜像================'
sudo docker push 192.168.8.10:5000/mingbytesiteapi:latest #推送镜像,镜像文件已经在前面的mvn步骤打好了
echo '================结束推送镜像================' sudo docker run -d --name MingByteSiteApi -p:8089:8089 192.168.8.10:5000/mingbytesiteapi
echo "finished!"

jenkins.sh

t=`sudo docker ps | grep $1|awk '{print  $1}'|sed 's/%//g'`;
b=``;
if [ $t ];
then
sudo docker stop $t
echo "停止容器成功"
sudo docker rm $t
echo "删除容器成功"
else
echo "首次部署";
fi tagnum=`git tag | wc -l`;
tag=(`git tag`)
a=0;
echo $tagnum
until [ $tagnum -lt 3 ]
do
echo $a 删除tag:${tag[$a]}
git tag -d ${tag[$a]}
git push $2 :refs/tags/${tag[$a]}
a=`expr $a + 1`
tagnum=`expr $tagnum - 1`
done

8。集成sonar代码审查

整合sonar代码审查参考:https://www.cnblogs.com/jxd283465/p/11548590.html

9。整合tag打包备份、整合邮件提醒

整合tag备份参考:https://www.cnblogs.com/jxd283465/p/11548589.html

整合邮件提醒参考:https://www.cnblogs.com/jxd283465/p/11548580.html

【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目的更多相关文章

  1. 【linux】【jenkins】自动化运维三 整合gitlab、docker发布vue项目

    由于工作需要,这里我先创建一个vue的工程. 1.首先安装好gitlab相关插件:GitLab.GitLab Hook.NodeJS 插件安装参考:https://www.cnblogs.com/jx ...

  2. Linux云自动化运维第四课

    Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所 ...

  3. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  4. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  5. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  6. [Linux]Ansible自动化运维① - 入门知识

    目录 一.Ansible 概述 1.1 Ansible 是什么 1.2 Ansible 优势 1.3 Ansible 特性 二.Ansible 入门 2.1 Ansible 架构 2.2 Ansibl ...

  7. Linux轻量级自动化运维工具— Ansible

    Ansible 是什么 ? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配 ...

  8. 【linux】【jenkins】自动化运维七 整合sonarqube代码审查

    1.安装插件:SonarQube Scanner for Jenkins 插件安装教程参考:https://www.cnblogs.com/jxd283465/p/11542680.html 2.So ...

  9. Linux云自动化运维第八课

    第十三单元 软件安装 一.软件名称识别 [abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ###rpm结尾的适用与redhat操作系统 ||       ...

随机推荐

  1. SpringBoot Mybatis解决使用PageHelper一对多分页问题

    一般来说使用 PageHelper 能解决绝大多数的分页问题,相关使用可在博客园上搜索,能找到很多资料. 之前我在做SpringBoot 项目时遇到这样一个问题,就是当一对多联合查询时需要分页的情况下 ...

  2. C++ 重载运算符(详)

    C++ 重载运算符 C 重载运算符 一重载函数 1例程 2备注 二重载运算符 11 二元运算符重载 11 一元运算符重载 111 -- 2备注 3 特殊运算符重载 31 号运算符 32 下标运算符 3 ...

  3. 【翻译】无需安装Python,就可以在.NET里调用Python库

    原文地址:https://henon.wordpress.com/2019/06/05/using-python-libraries-in-net-without-a-python-installat ...

  4. 简易数据分析 11 | Web Scraper 抓取表格数据

    这是简易数据分析系列的第 11 篇文章. 今天我们讲讲如何抓取网页表格里的数据.首先我们分析一下,网页里的经典表格是怎么构成的. First Name 所在的行比较特殊,是一个表格的表头,表示信息分类 ...

  5. unity编辑器扩展_02(分别在Hierarchy,Project中创建一个选项)

    在Hierarchy面板创建选项的代码: [MenuItem("GameObject/Test",false,1)]    static void Test1()    {     ...

  6. Java集合框架之Map接口浅析

    Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...

  7. xib上的控件属性为什么要使用weak

    常规中,从xib拖出一个控件时,系统会自动生成一段代码,如下: 从这个图片中,可以看到控件的属性都是用的weak,这是为什么呢? 首先,如果把weak修改成strong其实也是可以的,但是会出现一个问 ...

  8. java实现查找PDF关键字所在页码及其坐标

    1.因为最近有这方面的需求,用过之后记录一下. 2.此功能跟PDF中Ctrl+F性质一样,如果PDF中为图片形式的不支持定位到关键字. import com.itextpdf.awt.geom.Rec ...

  9. Java发送邮件必带超时时间配置

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在线上遇到了一个发送邮件的问题,记录一下. 一.先说 ...

  10. Kafka笔记—可靠性、幂等性和事务

    这几天很忙,但是我现在给我的要求是一周至少要出一篇文章,所以先拿这篇笔记来做开胃菜,源码分析估计明后两天应该能写一篇.给自己加油~,即使没什么人看. 可靠性 如何保证消息不丢失 Kafka只对&quo ...