Maven 一键部署到 SSH 服务器

news/2024/12/22 2:12:27/

简介

利用 Maven Mojo 功能一键部署 jar 包或 war 包到远程服务器上。

配置

在 maven 的setting.xml 配置服务器 SSH 账号密码。虽然可以在工程的 pom.xml 直接配置,但那样不太安全。
在这里插入图片描述

<servers><server><id>iq</id><configuration><StrictHostKeyChecking>no</StrictHostKeyChecking></configuration><username>user</username><password>pass</password></server>
</servers>

在工程的 pom.xml配置:

<!--一键部署到服务器 SSH--><plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>2.0.2</version><executions><execution><id>upload-deploy</id><!-- 运行package打包的同时运行upload-single和sshexec --><phase>package</phase><goals><goal>upload-single</goal><goal>sshexec</goal></goals><configuration><!-- 指定 SSH 账号 --><serverId>xxx-dell</serverId><!-- 要更新的 jar 包 --><fromFile>target/xxxx.jar</fromFile><!-- 服务器部署位置 --><url><![CDATA[ scp://192.168.1.3/data/xxx ]]></url><!-- 重启脚本 先切换目录,才能正确执行脚本 --><commands><command>cd /data/car-short;./startup.sh</command></commands><!-- 显示运行命令的输出结果 --><displayCommandOutputs>true</displayCommandOutputs></configuration></execution></executions></plugin>

如果出现“算法不正确”,那么要升级 wagon-ssh,网上都是 2.8 的,太旧了,这是最新的版本,在 pom.xml–build 下面:

 <!--一键部署到服务器 SSH--><extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>3.5.3</version></extension></extensions>

如果出现下面异常,就是不能写入你用户目录。

Wagon Connection aborted - failed to write to known_hosts

解决方法:进入 CMD,在当前用户目录下(windows)新建目录.ssh
在这里插入图片描述
这个不能直接新建目录,手动执行mkdir .ssh

另外如果还不行,则配置 maven 的setting.xml

<servers><server><id>iq</id><configuration><StrictHostKeyChecking>no</StrictHostKeyChecking></configuration><username>user</username><password>pass</password></server>
</servers>

参见

  • Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
  • maven wagon-maven-plugin 实现远程部署

http://www.ppmy.cn/news/1057097.html

相关文章

Java调用高德地图API根据经纬度获取区县

在开发中&#xff0c;有时候需要根据经纬度来获取对应的区县信息&#xff0c;这可以通过调用高德地图的API来实现。本篇文章将介绍如何使用Java代码调用高德地图API来根据经纬度获取区县信息。 前提条件 首先&#xff0c;你需要注册一个高德地图开发者账号&#xff0c;并获取…

自动驾驶SLAM技术第四章习题2

在g2o的基础上改成ceres优化&#xff0c;高博都写好了其他的部分, 后面改ceres就很简单了. 这块我用的是ceres的自动求导&#xff0c;很方便&#xff0c;就是转化为模板仿函数的时候有点麻烦&#xff0c; 代码部分如下 ceres_type.h : ceres优化核心库的头文件 这个文件写的内…

关于档案馆建设的一些标准性文件说明

第一章 总则 第一条 本条阐明了本标准的编制目的。 中国是一个历史悠久的文明古国&#xff0c;档案事业的发展源远流长。档案是人类活动的真实记录&#xff0c;是人们认识和把握客观规律的重要依据。借助档案&#xff0c;我们能够更好地了解过去、把握现在、预见未来。档案工…

基于Roop视频换脸

Roop 是一个强大的一键换脸工具&#xff0c;允许用户在视频中替换面部&#xff0c;只需要目标面部的一张图片&#xff0c;无需数据集&#xff0c;无需训练。 相对于之前的 Simswap 来说效果要好很多&#xff0c;不过需要注意的是没有授权不要商用。 文章目录 环境搭建使用方法…

数据结构(6)

2-3查找树 2-结点&#xff1a;含有一个键(及其对应的值)和两条链&#xff0c;左链接指向2-3树中的键都小于该结点&#xff0c;右链接指向的2-3树中的键都大于该结点。 3-结点&#xff1a;含有两个键(及其对应的值)和三条链&#xff0c;左链接指向的2-3树中的键都小于该结点&a…

【安装】MongoDB7安装MongoSH命令

MongoDB Shell Download | MongoDB 下载之后 解压 配置环境变量即可 以前使用 mongo命令 改为 mongosh 官方说明 安装mongosh MongoDB 中文手册 | MongoD Manual | 中文操作手册 | MongoDB 最新版 (whaleal.com) 安装 mongosh — MongoDB Shell

python删除字典中嵌套的所有空字符串、空数值、空字典、但不删除0

当字典中存在嵌套的字典或列表&#xff0c;并且你想同时删除这些嵌套结构中的空元素时&#xff0c;可以使用递归函数来实现。以下是代码示例&#xff1a; def clean(data):if isinstance(data, dict):return {k: clean(v) for k, v in data.items() if v or v 0}elif isinsta…

Java在项目中覆盖Jar包中的类

import cn.hutool.core.util.StrUtil;public class CoverJarTest {public static void main(String[] args) {System.out.println(StrUtil.toString("1"));} }输出1 我们将hutool的包名在我们的项目中创建一个&#xff0c;并且将对应类的源码复制一份过来&#xff0c…