wagon-maven-plugin实现自动打包部署到服务器

本文详细介绍如何使用Maven实现自动化部署,包括添加依赖、配置SSH、定义部署命令及执行顺序。通过实例展示如何将WAR包上传至远程服务器并执行重启等操作。

1.在maven中添加依赖

1 <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/wagon-maven-plugin -->
2         <dependency>
3             <groupId>org.codehaus.mojo</groupId>
4             <artifactId>wagon-maven-plugin</artifactId>
5             <version>2.0.0</version>
6         </dependency>

2.在pom的build节点添加wagon-ssh

1      <extensions>
2             <extension>
3                 <groupId>org.apache.maven.wagon</groupId>
4                 <artifactId>wagon-ssh</artifactId>
5                 <version>2.10</version>
6             </extension>
7         </extensions>

3.在plugins下添加配置

 1         <plugins>
 2             <!-- 执行的顺序 和命令的顺序有关系,我们这边使用第一个 先执行command 再进行发包  -->
 3             <!-- mvn clean package  wagon:sshexec wagon:upload-single -->
 4             <!-- mvn clean package wagon:upload-single wagon:sshexec -->
 5             <plugin>
 6                 <groupId>org.codehaus.mojo</groupId>
 7                 <artifactId>wagon-maven-plugin</artifactId>
 8                 <version>1.0</version>
 9                 <configuration>
10                     <fromFile>target/${pack-name}</fromFile>
11                     <url>scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}</url>
12                     <displayCommandOutputs>true</displayCommandOutputs>
13                     <commands>
14                         <!-- >command>kill -9 `ps -ef |grep ${remote-name}|grep -v "grep" |awk '{print $2}'`</command -->
15                         <command>rm -rf ${service-path}/*</command>
16                         <command>${start-shell} ${remote-file}</command>
17                         <command><![CDATA[netstat -nptl]]></command>
18                         <command><![CDATA[ps -ef | grep ${remote-name} | grep -v grep]]></command>
19                     </commands>
20                 </configuration>
21             </plugin>
22         </plugins>

其中 

<fromFile>为target下的war包 全路径名称   如 target/demo.war

<url>为服务器路径地址 如: scp://root:123456@192.168.1.96:22/usr/local/tomcat/demo/webapps  

<commands>为在服务器执行的命令集合,<command>为执行的命令,这些命令需要根据具体的情况来写,比如删除war包,重启服务之类的操作

也可以跟我一样 通过参数化的方式来指定 

 1     <properties>
 2           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 3           <service-path>/usr/local/tomcat/demo/webapps</service-path>
 4           <pack-name>NACPortal_${package.environment}.war</pack-name>
 5           <remote-addr>192.168.1.96:22</remote-addr>
 6           <remote-username>root</remote-username>
 7           <remote-passwd>123456</remote-passwd>
 8           <remote-name>NACPortal</remote-name>
 9           <start-shell>/usr/local/tomcat/start_tomcat.sh</start-shell>
10           <remote-file>/usr/local/tomcat/demo</remote-file>
11       </properties>

至此配置完成。

4.在终端或者pom.xml文件相同目录下执行以下mvn命令

最后需要通过执行以下命令来完成部署的最后一步 

命令一: mvn clean package wagon:sshexec wagon:upload-single


命令二:mvn clean package wagon:upload-single wagon:sshexec

 

 通过测试我发现 两个命令有执行顺序上的区别,命令一先执行配置指定的<commands>命令后进行上传war包,命令二相反;

 具体使用哪个,还是要按照实际的命令情况使用,通常使用命令一即可

 

有道词典
<!-- shiro 版本 - ...
详细 X
  < !——shiro版本- - >   utf - 8 < project.build.sourceEncoding > < / project.build.sourceEncoding >
有道词典
mvn clean packa ...
详细 X
  mvn清洁包马车:sshexec马车:upload-single - - >   4 < !——mvn清洁包马车:upload-single马车:sshexec

转载于:https://www.cnblogs.com/zluckiy/p/10220030.html

wagon-maven-plugin 下载不成功时,可以尝试以下几种解决办法: ### 检查 Maven 配置 确保 Maven 的 `settings.xml` 文件配置正确,尤其是镜像和仓库地址。可以检查是否有配置错误或者镜像地址不可用的情况。例如,可能需要将镜像地址替换为可用的地址。 ```xml <mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors> ``` ### 清除本地仓库缓存 有时候本地仓库中的缓存文件可能损坏,导致插件下载失败。可以删除本地仓库中 wagon-maven-plugin 相关的文件,然后重新下载。本地仓库的默认路径是 `~/.m2/repository`,在该目录下找到 `org/codehaus/mojo/wagon-maven-plugin` 目录并删除,之后重新执行 Maven 命令。 ### 检查网络连接 确保网络连接正常,能够访问 Maven 中央仓库或者配置的镜像仓库。可以尝试使用浏览器访问仓库地址,检查是否能够正常打开。如果网络存在代理,需要在 Maven 的 `settings.xml` 中配置代理: ```xml <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <host>proxy.example.com</host> <port>8080</port> </proxy> </proxies> ``` ### 检查插件版本 确认使用的 wagon-maven-plugin 版本是否存在问题。可以尝试更换不同的版本,例如将 `<version>2.0.2</version>` 更换为其他可用版本,然后重新下载。 ### 手动下载插件 如果以上方法都无法解决问题,可以手动从 Maven 中央仓库下载 wagon-maven-plugin 的 JAR 文件,然后将其放置到本地仓库对应的目录下。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值