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详细配置的文章链接:

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

目录
相关文章
|
3月前
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
296 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
|
3月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
1594 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
669 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
565 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
109 0
|
3月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
73 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
4月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
4月前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
87 10
|
3月前
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
296 0
|
4月前
|
存储 Linux 网络安全
存放位置阿里云服务器代码的
阿里云服务器提供虚拟化计算、存储与网络服务。创建服务器时,可基于不同需求选择代码存放位置:文件系统支持直接通过SSH访问与编辑;公共目录如 `/var/www/html` 适合Web应用;对象存储OSS适用于大数据处理;代码托管服务如 GitLab 则利于版本控制与团队协作。合理选择有助于提升开发效率。
84 7