Maven 一键部署到 SSH 服务器

简介

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

配置

在 maven 的setting.xml 配置服务器 SSH 账号密码。虽然可以在工程的 pom.xml 直接配置,但那样不太安全。
Maven 一键部署到 SSH 服务器_第1张图片

<servers>
    <server>
        <id>iqid>
        <configuration>
            <StrictHostKeyChecking>noStrictHostKeyChecking>
        configuration>
        <username>userusername>
        <password>passpassword>
    server>
servers>

在工程的 pom.xml配置:


  <plugin>
      <groupId>org.codehaus.mojogroupId>
      <artifactId>wagon-maven-pluginartifactId>
      <version>2.0.2version>

      <executions>
          <execution>
              <id>upload-deployid>
              
              <phase>packagephase>
              <goals>
                  <goal>upload-singlegoal>
                  <goal>sshexecgoal>
              goals>
              <configuration>
                  
                  <serverId>xxx-dellserverId>
                  
                  <fromFile>target/xxxx.jarfromFile>
                  
                  <url>
                      
                  url>
                  
                  <commands>
                      <command>cd /data/car-short;./startup.shcommand>
                  commands>
                  
                  <displayCommandOutputs>truedisplayCommandOutputs>
              configuration>
          execution>
      executions>
  plugin>

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

 
  <extensions>
      <extension>
          <groupId>org.apache.maven.wagongroupId>
          <artifactId>wagon-sshartifactId>
          <version>3.5.3version>
      extension>
  extensions>

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

Wagon Connection aborted - failed to write to known_hosts

解决方法:进入 CMD,在当前用户目录下(windows)新建目录.ssh
Maven 一键部署到 SSH 服务器_第2张图片
这个不能直接新建目录,手动执行mkdir .ssh

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

<servers>
    <server>
        <id>iqid>
        <configuration>
            <StrictHostKeyChecking>noStrictHostKeyChecking>
        configuration>
        <username>userusername>
        <password>passpassword>
    server>
servers>

参见

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

你可能感兴趣的:(maven,ssh)