Maven 一键部署到 SSH 服务器

简介

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

配置

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

xml 复制代码
<servers>
    <server>
        <id>iq</id>
        <configuration>
            <StrictHostKeyChecking>no</StrictHostKeyChecking>
        </configuration>
        <username>user</username>
        <password>pass</password>
    </server>
</servers>

在工程的 pom.xml配置:

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 下面:

xml 复制代码
 <!--一键部署到服务器 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

xml 复制代码
<servers>
    <server>
        <id>iq</id>
        <configuration>
            <StrictHostKeyChecking>no</StrictHostKeyChecking>
        </configuration>
        <username>user</username>
        <password>pass</password>
    </server>
</servers>

参见

相关推荐
埃博拉酱4 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
逍遥德5 天前
Maven教程.02-基础-pom.xml 使用标签大全
java·后端·maven·软件构建
逍遥德5 天前
Maven教程.01- settings.xml 文件<profile>使用详解
xml·java·maven
逍遥德6 天前
Maven教程.04-如何阅读Maven项目
java·maven
txzz88886 天前
CentOS-Stream-10 Secure Shell服务器
linux·centos·ssh·secure shell·ssh服务器
逍遥德6 天前
Maven教程.03-如何阅读pom.xml文件
xml·java·后端·maven
塔中妖6 天前
Windows 安装 Maven 详细教程(含镜像与本地仓库配置)
java·windows·maven
成为你的宁宁6 天前
Jenkins 自动化部署前后端分离若依项目全攻略:涵盖环境配置、Maven/Node.js 工具安装、GitLab 项目协同,及前后端构建、服务器推送与代码更新验证全步骤
node.js·自动化·gitlab·jenkins·maven
文静小土豆6 天前
CentOS 7 OpenSSH 10.2p1 升级全攻略(含离线安装与回退方案)
linux·运维·centos·ssh