Jenkins打包Gitlab代码发布到远程Linux服务器

简介: Jenkins打包Gitlab代码发布到远程Linux服务器

引言

首先贴上一张Jenkins部署的原理图:

从上图可以知道,Jenkins自动化部署流程如下:

  1. Jenkins通过Git/SVN插件从远程代码仓库检出代码
  2. Jenkins通过Maven插件对代码进行打包
  3. Jenkins使用Deploy插件(如ssh)发布打包后的代码去远程应用服务器

对于Jenkins,要实现以上功能,必须满足以下几个条件:

  • 安装JDK、Maven仓库
  • 安装git/svn插件、maven插件、deploy插件(如ssh)
  • 配置项目相关的内容(如:git仓库地址、maven命令、执行脚本等)

下面来讲解下。

Step1: Jenkins配置基础环境

首先进入路径:首页 -> Manage Jenkins -> Global Tool Configuration

① 配置JDK :在Jenkins的环境下,查询JAVA_HOME路径并配置(先安装好JDK,或自动安装也可以),配置如下图:

② 配置Maven:在Jenkins的环境下,查询Maven路径并配置环境(手动或自动安装也可以):

③ 配置Git:手动或自动安装也可以:

Step2: 插件安装

首先进入路径:首页 -> Manage Jenkins -> Plugin Manager,如下图:

安装的插件如下:

Git、GitLab、SSH plugin、SSH Slaves(除开默认)

Step3: 配置项目相关内容

①首先在主页,新建一个项目,输入名称:

②进入项目后,选择Configure:

③配置的核心内容如下:

  • Description(描述)
  • JDK(改项目使用到的JDK版本)
  • 配置源码地址,需要构建的分支
  • Build Environment(构建的环境)
  • Maven脚本
  • SSH远程连接服务器配置
  • 复制本地编译后的内容到远程服务器脚本(例如:scp \ /var/jenkins_home/workspace/项目/target/xxx.jar \ service@192.168.1.101:~/web-pack/xxx.jar):
  • 拷贝之后的第一条命令,即杀掉正在运行的程序(命令如:PID=$(ps -ef | grep xxx.jar | grep -v grep | awk '{ print $2 }') if [ -z "$PID" ] then echo Application is already stopped else echo kill $PID kill -9 $PID fi
  • 执行第二条命令,复制拷贝的包到指定的目录(命令如:cp ~/xxx.jar ~/xxx_bak.jar mv ~/web-pack/xxx.jar ~/xxx.jar
  • 启动脚本(命令如:cd ~/message nohup java \ -Xms256m \ -Xmx256m \ -jar xxx.jar --spring.profiles.active=test --server.port=10020 &

最后点击save(保存)即可。

Step4: 开始构建

点击Build Now,可以看到下面正在构建,如下图:

点击进度条,可以进去看到构建内容详情:

最后可以看到项目正在运行:

在本文末,贴上相关的文章:

Jenkins详细配置的文章链接:

其实还可以使用钩子程序,不需要每次都动手去构建:

目录
相关文章
|
2月前
|
Java Serverless 项目管理
云效常见问题之自建gitlab代码同步到codeup报通过token访问失败如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
44 1
|
2月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
3月前
|
数据可视化 Shell Linux
shell+crontab+gitlab实现ecs服务器文件的web展示
本文通过把ecs服务器上的文件定时上传至gitlab,实现文件的页面可视化和修改历史。技术点:shell、crontab、gitlab。
54 3
|
2天前
|
jenkins 持续交付 API
上传gitlab代码后jenkins自动进行发布的配置
上传gitlab代码后jenkins自动进行发布的配置
|
2天前
|
jenkins 持续交付 开发工具
gitlab远程库代码版本回滚方法
gitlab远程库代码版本回滚方法
|
4天前
|
Ubuntu Android开发 数据安全/隐私保护
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
|
10天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
47 0
|
14天前
|
运维 监控 Serverless
【专栏】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器(Serverless)
【4月更文挑战第28天】无服务器架构,一种云计算模型,让开发者专注编写代码而不必管理服务器。它基于事件驱动,自动扩展资源并按需计费。优势包括缩短开发周期、优化资源利用、降低成本、提高可用性及简化维护。然而,冷启动延迟、调试困难、性能监控、安全性和学习曲线等挑战仍需解决。随着技术进步,无服务器架构将在科技发展中发挥更大作用。
|
19天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
23 0
|
21天前
|
运维 Devops Shell
云效产品使用报错问题之在codeup上创建的代码分支或者代码变动,同步到gitlab失败如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。