Jenkins连接Maven自动化部署构建SpringBoot

news2025/1/22 15:45:00

目录

    • 1.首先下载maven拉取到服务器
    • 2.解压maven并进入解压文件修改setting.xml
    • 2.拉取jdk18到服务器并解压
    • 3.将jdk还有maven移动到jenkins的挂载目录
    • 4.进入jenkins容器
    • 5.在jenkins的全局配置中配置jdk与maven
    • 6.jenkins安装插件 Publish Over SSH
    • 7.jenkins服务器创建一个jar包存放目录
    • 7.进入系统配置修改Publish over SSH
    • 8.创建一个java项目上传到gitlab
    • 9.jenkins拉取gitlab代码
    • 10.job构建操作打包
    • 11.推送jar包到目标服务器
    • 12.项目编写dockerfile与docker-compose.yml
    • 13.jenkins配置构建后操作

1.首先下载maven拉取到服务器

Maven下载地址

2.解压maven并进入解压文件修改setting.xml

  • 添加阿里云镜像地址
 </mirrors>
 	<mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/repository/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
 </mirrors>
  • 添加jdk8编译
</profiles>
  <profile>
    <id>jdk8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
 </profile>
</profiles>

  • 激活profile
<activeProfiles>
    <activeProfile>jdk8</activeProfile>
 </activeProfiles>

2.拉取jdk18到服务器并解压

[root@npy home]# ls
gitlab  java  jdk  jenkins  maven

3.将jdk还有maven移动到jenkins的挂载目录

[root@npy home]# ls
gitlab  java  jdk  jenkins  maven
[root@npy home]# mv jdk/ /home/jenkins/jenkins_mount
[root@npy home]# mv maven/ /home/jenkins/jenkins_mount
[root@npy home]# ls
gitlab  java  jenkins

4.进入jenkins容器

docker exec -it f315593f41fc bash

找到jdk与maven的目录

jenkins@f315593f41fc:~$ cd jdk/
jenkins@f315593f41fc:~/jdk$ ls
COPYRIGHT  LICENSE  README.html  THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt  bin  db  include  javafx-src.zip  jre  lib  man  release  src.zip
jenkins@f315593f41fc:~/jdk$ pwd
/var/jenkins_home/jdk

jenkins@f315593f41fc:~$ cd maven/
jenkins@f315593f41fc:~/maven$ ls
LICENSE  NOTICE  README.txt  bin  boot	conf  lib
jenkins@f315593f41fc:~/maven$ pwd
/var/jenkins_home/maven

5.在jenkins的全局配置中配置jdk与maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HflLUO76-1676376484287)(E:\MD笔记\image-20230214171748764.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HiNn5mNF-1676376484288)(E:\MD笔记\image-20230214172000160.png)]

6.jenkins安装插件 Publish Over SSH

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UaLbkF8g-1676376484288)(E:\MD笔记\image-20230214172135321.png)]

7.jenkins服务器创建一个jar包存放目录

[root@npy jenkins]# ls
jenkins_mount  jenkins.war
[root@npy jenkins]# mkdir MavenScripts
[root@npy jenkins]# ls
jenkins_mount  jenkins.war  MavenScripts
[root@npy jenkins]# chmod 777 -R MavenScripts/
[root@npy jenkins]# ls
jenkins_mount  jenkins.war  MavenScripts
[root@npy jenkins]# 

7.进入系统配置修改Publish over SSH

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AkAzWp9v-1676376484288)(E:\MD笔记\image-20230214172916614.png)]

8.创建一个java项目上传到gitlab

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3twe2S3Q-1676376484288)(E:\MD笔记\image-20230214173234099.png)]

9.jenkins拉取gitlab代码

教程看这个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQmUqOwI-1676376484289)(E:\MD笔记\image-20230214173548953.png)]

10.job构建操作打包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugITXzLT-1676376484289)(E:\MD笔记\image-20230214174457899.png)]

应用保存之后重新构建,就会执行打包操作,第一次打包下载会有点慢,不要急哦。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIlHPjk4-1676376484289)(E:\MD笔记\image-20230214174920871.png)]

进入workspace的项目的target就可以看到打包的文件了

[root@npy target]# ls
classes  generated-sources  generated-test-sources  lover_story_back-0.0.1-SNAPSHOT.jar  lover_story_back-0.0.1-SNAPSHOT.jar.original  maven-archiver  maven-status  surefire-reports  test-classes
[root@npy target]# 

11.推送jar包到目标服务器

jenkins构建后操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4gq6VH8O-1676376484289)(E:\MD笔记\image-20230214175255839.png)]

保存之后再次构建,会发现将target推送到了第七步的jar包存放路径

[root@npy jenkins]# cd MavenScripts/
[root@npy MavenScripts]# ls
[root@npy MavenScripts]# ls
target
[root@npy MavenScripts]# 

12.项目编写dockerfile与docker-compose.yml

Dockerfile

FROM daocloud.io/library/java:openjdk-8u40-jdk
COPY lover_story.jar /usr/local
WORKDIR /usr/local
CMD java -jar lover_story.jar

docker-compose.yml

version: '3.1'
services:
  lover_story:
    build: 
      context: ./
      dockerfile: Dockerfile
    image: lover_story:v1.0.0
    container_name: lover_story
    ports:
      - 8088:8080

13.jenkins配置构建后操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AtQ5fisI-1676376484289)(E:\MD笔记\image-20230214181631478.png)]

cd /home/jenkins/MavenScripts/docker
mv ../target/*.jar ./
docker compsoe down
docker compose up -d --build
docker image prune -f

由于多次构建镜像会出现none的情况,因此需要添加清除操作:docker image prune -f
在这里插入图片描述

应用保存再次构建即可完成部署!

想要自动话上传构建可以看这个教程

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

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

相关文章

ArcGIS API for JavaScript 4.15系列(6)——Dojo中的事件绑定

1、前言 在Web界面中&#xff0c;用户点击按钮、选择下拉选项、移动鼠标都涉及到dom元素的事件机制。下面就来介绍一下Dojo中的事件绑定操作。 2、dojo/on模块绑定事件 我们就从最简单的按钮click事件入手&#xff0c;Dojo中的dojo/on模块可以实现dom元素的事件绑定&#xf…

高性能办公娱乐迷你主机——Maxtang大唐AMD5600U

今天给大家介绍一款AMD5600U迷你主机&#xff0c;说起这款处理器大家应该并不陌生&#xff0c;像联想小新、YOGA以及ThinkBook等很多款用的都是这个型号&#xff0c;不过笔记本的价格基本都在3999-4999这个价位区间&#xff0c;同样的处理器&#xff0c;笔记本卖那么贵&#xf…

内网渗透(二十八)之Windows协议认证和密码抓取-Windows RDP凭证的抓取和密码破解

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

帮公司面试了一个30岁培训班出来的程序员,没啥工作经验...

首先&#xff0c;我说一句&#xff1a;培训出来的&#xff0c;优秀学员大有人在&#xff0c;我不希望因为带着培训的标签而无法达到用人单位和候选人的双向匹配&#xff0c;是非常遗憾的事情。 最近&#xff0c;在网上看到这样一个留言&#xff0c;引发了程序员这个圈子不少的…

Python程序设计-第5章Python面向对象

第5章Python面向对象一.预习笔记 1.类的相关概念 类的定义&#xff0c;类对象&#xff0c;实例对象&#xff0c;类属性 类属性是跟类绑定的&#xff0c;如果要修改类的属性就必须使用类对象访问&#xff0c;只使用实例对象是无法修改的。 权限访问&#xff1a;name与age是公…

【每日随笔】手指训练 ( 产品需求探索、技术无关 | 手指训练作用 | 哪些人需要手指训练 | 手指操 | 手指康复训练器材 )

文章目录一、手指训练作用二、哪些人需要手指训练三、手指操四、手指康复训练器材产品需求探索 , 研究下手指训练的市场 , 前景 , 是否可以开发 ; 一、手指训练作用 手指训练作用 : 改善 上肢协调性手眼 协调性训练提高 手指 抓握 能力提高 手指 灵活性提高 上肢运动 准确性 和…

Linux进程间通信(system V共享内存)

共享内存原理 看上面这张图&#xff0c;其实只要是进程间通信都离不开让他们看到同一块资源(内存)&#xff0c;其实共享内存这里和动态库那里一样&#xff0c;都是要加载到共享区&#xff0c;共享内存提供者&#xff0c;是操作系统&#xff0c;操作系统要不要管理共享内存&…

Python环境搭建指南

Python能做太多有趣使用的事了&#xff0c;不仅可以做现在火热的人工智能、数据分析&#xff0c;还可以做爬虫、Web开发、自动化运维的事情。 随着Python为我们工作与生活带来更多的便捷后&#xff0c;很多人开始学习Python&#xff0c;关注Python的发展前景、薪资和职业素养的…

RabbitMQ——高级特性(SpringBoot实现)

本篇文章的内容与我之前如下这篇文章一样&#xff0c;只是使用技术不同&#xff0c;本篇文章使用SpringBoot实现RabbitMQ的高级特性&#xff01; RabbitMQ——高级特性_小曹爱编程&#xff01;的博客-CSDN博客RabbitMQ——高级特性&#xff1a;1、RabbitMQ高级特性&#xff1b;…

IDEA2021.3新建一个maven-archetype-webapp项目,发现在新建文件汇总,没有新建servlet文件选项

问题 我使用maven-webapp 模板新建了一个web项目&#xff0c;但是在新建文件的时候&#xff0c;发现没有servlet选项 解决 第一种&#xff1a;在pom中直接配置 <dependencies><dependency><groupId>javax.servlet</groupId><artifactId>java…

Linux进程信号产生以及捕捉

一.什么是信号 生活中&#xff0c;有哪些信号相关的场景呢&#xff0c;比如&#xff1a;红绿灯&#xff0c;闹钟&#xff0c;转向灯等等 1.这里我们要知道&#xff0c;你为什么认识这些信号呢&#xff0c;记住了对应场景下的信号&#xff0b;后续是有”动作“要你执行的 2.我们…

spring boot 项目打包镜像方式以及区分环境打包

springboot项目打包成docker镜像-贾玉珍-2023年2月8日方法一&#xff1a;将项目jar包手动推送到docker服务器上1.用maven对项目进行打包&#xff0c;打包成功后会有一个target目录&#xff0c;目录下有打好的项目jar包2.将jar包上传到服务器上&#xff0c;我用的是finalshell工…

Zabbix Agent item监控项讲解

前言 agent与snmp是Zabbix两种重要的监控方式&#xff0c;这一期主要介绍Zabbix Agent item监控项。。Zabbix agent分为主动代理、被动代理&#xff0c;配置item类型时&#xff0c;可以选择需要的类型&#xff1a; Zabbix agent &#xff1a;用于被动检查 Zabbix agent&…

【C语言进阶】结构体、位段、枚举和联合

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;C语言航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&a…

顶刊MS论文解读|数据驱动的动态定价和订购策略

作者&#xff1a;白静 金凯瑞 马玺渊 钟子俊编者按 本次解读的文章为“Data-Driven Dynamic Pricing and Ordering with Perishable Inventory in a Changing Environment”&#xff0c;于2022年发表在期刊 Management Science, 作者 N. Bora Keskin, Yuexing Li, Jing-Sheng …

推荐5款极大提高工作效率的办公软件!每个都是我精挑细选的

关于提高办公效率的相关软件&#xff0c;答主要把工作5年的独家秘方都拿出来了。分享的都是用过的且体验不错的软件&#xff0c;大多数是免费软件&#xff01; 按照使用场景&#xff0c;简单先分个类&#xff0c;分别是时间利用利器&#xff0c;流程优化软件&#xff0c;办公美…

论文投稿指南——中文核心期刊推荐(工程材料学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

重生之我是赏金猎人-SRC漏洞挖掘(一)-某SRC测试系统无脑Getshell

0x01 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 0x02 资产收集到脆弱系统 在某src挖掘过程中&#xff0c;本人通过ssl证书对域名资产进行了收集&#xff0c;通过计算域名对应ip段的权重 整理出其C段资产&#xff0c;进行了批量目录扫描 查看…

Spring Boot两种格式的配置文件,你都了解吗?

目录 前言 一、properties配置文件 1.1、语法格式 1.2、读取配置文件 1.3、缺点分析 2、yml配置文件 2.1、yml语法 2.1.1、注意&#xff1a;value值的单双引号 2.2、yml配置读取 2.3、yml配置的不同数据类型 2.4、yml配置对象 2.5、yml配置集合 3、面试&#xff1a…

2023年浙江道路运输安全员考试真题题库及答案

百分百题库提供道路运输安全员考试试题、道路运输安全员考试预测题、道路运输安全员考试真题、道路运输安全员证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 1.关于道路运输企业车辆技术管理机构的主要职责&#xff0c;在下列表述中最…