自动部署项目利器 - Jenkins(jenkins自动部署maven项目)
wptr33 2024-11-17 02:41 23 浏览
一、前言
在日常开发中,如果一些功能模块开发完成,需要上测试平台,一般项目的发布步骤是:
1、本地用maven打成war包
2、远程连上项目服务器
3、停掉tomcat,删除旧包和缓存,将新打的包放进去
4、重启tomcat
以上步骤看似简单,其实占用了大量开发的的时间,而且都是人工操作,容易误操作。因此很有必要用一个工具代替人工操作,完成项目的发布,Jenkins就是一个很好的选择。
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
使用jenkins,只要第一次创建项目配置好后,以后的版本更新都只需要点击立即构建,可以一键完成上面的4个步骤,简单而方便。
二、安装构建
jenkins提供多种安装方式,这里选择的是war包安装jenkins,简单不伤脑。因此需要提前安装jdk和tomcat,并配置环境变量。
1、下载jenkins
官网地址:https://www.jenkins.io/download/
2、启动jenkins
把下载的Jenkins.war放到tomcat下webapps目录中,然后启动tomcat。我用的8080端口访问地址为http://公网地址:8080/jenkins,出现如下页面:
需要输入密码在服务器上面cat /root/.jenkins/secrets/initialAdminPassword会出现让输入的密码。
然后出现如下页面,选择安装插件
选择安装的插件后,出现如下页面,表示正在安装插件
插件安装完成后,需要创建用户
Jenkins url使用默认的就可以
开始使用,点击就会进来
因为我要部署的是maven项目,jenkins默认的插件中是没有maven的,首先需要安装下。
点击下图插件直接安装就行了,搜索Maven Integration
安装热部署插件,搜索Deploy to container Plugin
3、配置jenkins
我们需要配下maven的setting文件,jdk以及maven地址。
最后Apply然后Save就行了,记得别忘了应用保存,不然白配了。
接着我们来新建一个项目,先输入项目名(可以和svn工程名不同),选择maven项目
选择源码管理,使用的SVN,选择Subversion配置SVN,URL是你SVN地址, Credentials配置自己的用户名和密码 点击Add再点击Jenkins
然后到Pre Steps,这个是打包前需要什么操作,比如我们现在的项目需要拷贝配置文件、压缩js、css等等,主要是把本地的配置文件换成服务器的配置文件,根据环境可以写windows或者Shell脚本,没有操作的话,就不用配了。
Build编译了,指定pom位置,以及mvn命令,对了高级里面还可以配置workspace,不配默认在jenkins安装目录中 maven命令可以是clean install 或者clean package,maven命令也可以按默认的,就是为空。
构建后操作,就是包打好了放在哪,一般要部署在tomcat等容器中。选择下图
本次构建后操作,使用的是tomcat的热部署
WAR/EAR:war包的地址
Context path:是部署后的包名(注意一般要和svn的工程名相同)
Credentials:是指热部署tomcat的账号/密码
URL:tomcat的界面,如:http://172.16.101.71:8180/
5、开始构建
讲了那么多,终于到了最后了,一个按钮的操作终于到了,返回jenkins首页就可以看到我们的项目了。
构建后点击左下角构建执行状态中可以看到我们的项目在构建中。点击项目名进入,选择Console就能看到我们构建过程中打印出来的日志或者错误信息了。
相关推荐
- Linux文件系统操作常用命令(linux文件内容操作命令)
-
在Linux系统中,有一些常用的文件系统操作命令,以下是这些命令的介绍和作用:#切换目录,其中./代表当前目录,../代表上一级目录cd#查看当前目录里的文件和文件夹ls#...
- 别小看tail 命令,它难倒了技术总监
-
我把自己以往的文章汇总成为了Github,欢迎各位大佬star...
- lnav:基于 Linux 的高级控制台日志文件查看器
-
lnav是一款开源的控制台日志文件查看器,专为Linux和Unix-like系统设计。它通过自动检测日志文件的格式,提取时间戳、日志级别等关键信息,并将多个日志文件的内容按时间顺序合并显示,...
- 声明式与命令式代码(声明模式和命令模式)
-
编程范式中的术语和差异信不信由你,你可能已经以开发人员的身份使用了多种编程范例。因为没有什么比用编程理论招待朋友更有趣的了,所以这篇文章可以帮助您认识代码中的流行范例。命令式编程命令式编程是我们从As...
- linux中的常用命令(linux常用命令和作用)
-
linux中的常用命令linux中的命令统称shell命令shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互shell终端:我们平时输入命令,执行程序的那个...
- 提高工作效率的--Linux常用命令,能够决解95%以上的问题
-
点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf...
- 如何限制他人操作自己的电脑?(如何控制别人的电脑不让发现)
-
这段时间,小猪罗志祥正处于风口浪尖,具体是为啥?还不知道的小伙伴赶紧去补一下最近的娱乐圈八卦~简单来说,就是我们的小罗同事,以自己超强的体力,以及超强的时间管理能力,重新定义了「多人运动」的含义,重新...
- 最通俗易懂的命令模式讲解(命令模式百科)
-
我们先不讲什么是命令模式,先通过一个场景来引出命令模式,看看命令模式能解决什么样的问题。现在有一个渣男张三,他有还几个女朋友,你现在是不是还是单身狗,你就说你气不气?然后他需要每天分别叫几个女朋友起床...
- 互联网大厂后端必看!Spring Boot 中Runtime执行与停止命令?
-
你是否曾在使用SpringBoot开发项目时,遇到需要执行系统命令的场景?比如调用脚本进行文件处理,又或是启动外部程序?很多后端开发人员会使用Processexec=Runtime.get...
- Linux 常用命令(linux常用的20个命令面试)
-
日志排查类操作命令...
- Java字节码指令:if_icmpgt(0xA3)(java字节码使用的汇编语言)
-
if_icmpgt是Java字节码中的一条条件跳转指令,其全称是"IfIntegerCompareGreaterThan"。它用于比较两个整数值的大小。如果栈顶的第一个...
- 外贸干货|如何增加领英的曝光量和询盘
-
#跨境电商#...
- golang执行linux命令(golang调用shell脚本)
-
需求需要通过openssl生成rsa秘钥,然后保存该秘钥。代码实例packagemainimport("io/ioutil""bytes"&...
- LINUX磁盘挂载(linux磁盘挂载到windows)
-
1、使用root用户查看磁盘挂载情况:fdisk-l2、使用df查看当前磁盘挂载情况,根据和fdisk-l的结果进行对比,查看还有那些磁盘未使用3、挂载:mount磁盘挂载路径...
- Linux命令学习——nl命令(linux ln命令的使用)
-
nl命令主要功能为每一个文件添加行号,每一个输入的文件添加行号后发送到标准输出。当没有文件或文件为-时,读取标准输入...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)