版权声明:本文为 CSDN 博主「snakeflash」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/snakeflash/article/details/104059318
修改 pom.xml
增加 extension
<project> <build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>3.0.0</version> </extension> </extensions> </build> </project>
增加 plugin
<project> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>wagon-maven-plugin</artifactId> <version>2.0.2</version> <configuration> <serverId>jncdh3</serverId> <!--本地包路径,相对于编译目录的路径 --> <fromFile>target/tag-web-0.0.1-SNAPSHOT.jar</fromFile> <!--包保存到服务器哪个路径下面 --> <url>scp://(用户名):(密码)@(远程服务器IP地址或域名)(要上传到的绝对路径)</url> <!-- 显示运行命令的输出结果 --> <displayCommandOutputs>true</displayCommandOutputs> <!--因为存在服务器的重启之类的操作,wagon也支持使用shell命令,可以有多个command标签哦,根据先后顺序执行--> <commands> <command>echo "开始执行脚本"</command> <!--服务端没有运行的时候不要运行这个,不然会报错--> <command>kill `netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }'`</command> <command>sleep 3s</command> <command>nohup java -jar /root/1962247851/tag-web/tag-web-0.0.1-SNAPSHOT.jar > /root/1962247851/tag-web/log.out & </command> <command>sleep 10s</command> <command>echo "脚本执行结束"</command> </commands> </configuration> </plugin> </plugins> </build> </project>
运行
mvn clean package wagon:upload-single wagon:sshexec
注意
如果 (密码)
比较复杂,比如有 /
符号,可以不写密码,变成
<url>scp://(用户名)@(远程服务器IP地址或域名)(要上传到的绝对路径)</url>
不过到时候要在控制台手动输入密码