# sftp_ssh_autoPublish **Repository Path**: leimingyun/sftp-ssh-autopublish ## Basic Information - **Project Name**: sftp_ssh_autoPublish - **Description**: 全自动部署或更新Java项目到线上,适用于Linux服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 4 - **Created**: 2021-11-03 - **Last Updated**: 2025-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用 #### 前提 使用我们指定的镜像部署服务器、或者按照此文档自行安装的tomcat(重点是 /mnt/tomcat8/ 这个tomcat的路径) http://help.wscso.com/5734.html #### 第一步,pom.xml引入 ```` com.xnx3.wm.autoPublish autoPublish 1.5 provided ```` #### 第二步,增加 AutoPublish.java com包下增加 AutoPublish.java ```` package com; /** * 自动部署更新到服务器 * @author 管雷鸣 */ public class AutoPublish extends com.xnx3.autoPublish.AutoPublish{ public static void main(String[] args) { /***** 服务器账号密码 *****/ SERVER_HOST = "114.115.154.1"; //服务器ip SERVER_USERNAME = "root"; //服务器ssh登录账号 SERVER_PASSWORD = "123456"; //服务器ssh登录密码 //本地打包往服务器上发布,也就是往服务器上上传时,是否忽略 WEB-INF/lib/ 这个文件夹,这个文件夹下全是第三方jar,正常开发基本不会动,但文件又不较大,如果自动部署上传到服务器不包含这个的话,部署会非常快。建议如果没有jar文件改动,就设置为true //PUBLISH_IGNORE_LIB_JAR = false; //服务器上要备份的文件。这里是指/mnt/tomcat8/webapps/ROOT 下的文件。 上传项目前,会先备份这里配置的文件,项目更新上去后,再把这些备份的文件还原回去 //不设置默认不会备份任何文件,传上去的本地开发环境下项目是什么样就是什么样 //注意这里路径开头以 / 开头,暂时不支持目录形式,只支持单个文件的形式。可add多个进去 //SERVER_BAK_FILE.add("/WEB-INF/classes/application.properties"); //SERVER_BAK_FILE.add("/WEB-INF/classes/kefu.properties"); run(); } } ```` 其中服务器ip、账号、密码 设置上 #### 第三步 ,执行 直接运行 AutoPublish 即可看到控制台进行执行了 ![image.png](https://images.gitee.com/uploads/images/2021/1104/163026_8363411f_429922.png) 执行完后要等待一分钟再试,毕竟tomcat启动时要消耗时间的 # 故障解决 ### Key exchange was not finished, connection is closed. ```` vim /etc/ssh/sshd_config ```` 注释掉 KexAlgorithms 这一行,然后重启服务器