版权声明:本文为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>`
不过到时候要在控制台手动输入密码