Jenkins远程部署war包到tomcat

2024-05-24 17:18

本文主要是介绍Jenkins远程部署war包到tomcat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网上关于这个的文章也是数不胜数了,但是稍不注意还是会掉坑里了,好不容易配置成功在这里记录一下。
关于怎么搭建Jenkins自动构建之前已经写过,这里就再补充一下自动远程部署的情况。

准备

在开始之前,服务器上需要有安装好环境,如:JDK,Tomcat等
配置好环境变量同时,在Jenkins和Gitlab上创建好项目。

项目文件配置

来依次看一下关于项目的文件配置,包括Maven的配置等。

pom.xml配置

<packaging>war</packaging><properties><warPackageName>spring</warPackageName><tomcat.deploy.server>tomcat8</tomcat.deploy.server><tomcat.deploy.serverUrl>http://192.168.1.2:8088/manager/text</tomcat.deploy.serverUrl>
</properties><build><finalName>spring</finalName><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>tomcat-maven-plugin</artifactId><version>1.1</version><configuration><server>${tomcat.deploy.server}</server><url>${tomcat.deploy.serverUrl}</url><path>/${warPackageName}</path></configuration></plugin></plugins></build>

我这里tomcat版本使用的8,如果使用的是tomcat6.x的话,serverUrl需要改为http://192.168.1.2:8080/manager
在这里<tomcat.deploy.server>tomcat8</tomcat.deploy.server>,其中tomcat8是需要在Maven的.settings.xml文件中配置的。

Maven settings配置

~/.m2/.settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><servers><server><id>nexus-snapshots</id><username>admin</username><password>lhy123</password></server><server><id>tomcat8</id><username>deployer</username><password>dev</password></server></servers><mirrors><mirror><id>nexus</id><name>internal nexus repository</name><url>http://192.168.1.2:8081/repository/maven-central/</url><mirrorOf>*</mirrorOf></mirror></mirrors></settings>

在这里主要是看server中的tomcat8配置,需要tomcat的用户名和密码。至于其他的是关于nexus的配置,以后有机会再写一篇详细说明Nexus的吧。
tomcat的用户名和密码就需要我们到服务器上去配置了。

服务器配置

服务器上主要是tomcat用户配置Maven settings配置
是的,本地配置那个是方便在本地就可以直接部署到服务器,但是如果是用Jenkins来帮我们自动的部署的话就需要在服务器上也配置一下Maven Settings了,否则在构建好后是无法进行远程部署的,因为不知道tomcat的用户名和密码。
在这里我们直接复制本地的.settings.xml文件到服务器就好,也有个地方需要注意了。
.settings.xml这个文件不是随便放的,需要放到启动jenkins的用户的那个home目录下面的.m2/目录中。
因为我是直接从Jenkins官网下载了war包,然后丢到tomcat中运行的。
所以这里我需要将.settings.xml文件放到/usr/share/tomcat8/.m2/中。
需要注意的是文件权限问题,我是为了偷懒直接用系统# apt-get install tomcat8安装的,系统会自动创建tomcat8用户。
所以还需要额外执行一条命令:# chown tomcat8:tomcat8 .settings.xml即可。
如果是自己从apache tomcat官网下载的压缩包的话,就看你启动tomcat服务用的哪个系统用户了,就把.settings.xml文件丢到那个用户的$HOME/.m2/下即可。

tomcat配置

先在tomcat用户配置文件中添加一个用户,并给予manager-script权限就行。
在我这里是编辑/etc/tomcat8/tomcat-users.xml文件

<tomcat-users><role rolename="admin-gui"/><role rolename="manager-gui"/><user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/><user username="deployer" password="dev" roles="manager-script"/></tomcat-users>

主要看deployer这个用户就行了。

Jenkins构建配置

好了,最后再说一下,在Jenkins中执行的构建命令
maven-build)
这里需要注意,执行的是mvn tomcat:redeploy
网上很多教程说的是mvn tomcat7:redeploy,我这边死活不行,总是报错。
No plugin found for prefix 'tomcat7' in the current project.
暂时不知道是什么原因,先不管了。

总结

做开发的就是一路趟坑啊,尤其是web方面。感觉就这么一点小小的东西都折腾了好一番,真是路漫漫兮其修远矣。但是为了前途咱还是得一路顶上去呢,吾必将上下而求索~

致还在年轻奋斗的我们。。

这篇关于Jenkins远程部署war包到tomcat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999035

相关文章

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f