Maven: 自动远程部署

1. 在settings.xml中的Servers节点中增加Server的登录信息:

1   <server>
2       <id>deploy_server_65</id>
3       <username>username</username>
4       <password>password</password>
5   </server>

2. 在pom中的build节点增加extensions内容:

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. 在plugin中增加plug

 1             <plugin>
 2                 <groupId>org.codehaus.mojo</groupId>
 3                 <artifactId>wagon-maven-plugin</artifactId>
 4                 <version>1.0</version>
 5                 <configuration>
 6                     <serverId>deploy_server_65</serverId>
 7                     <commands>
 8                         <!-- 删除之前文件 -->
 9                         <command>rm -rf /var/lib/hadoop-hdfs/bigdata-stat-3.2.1.jar</command>
10                     </commands>
11                     <displayCommandOutputs>true</displayCommandOutputs>
12                     <!-- 需要部署的文件 -->
13                     <fromFile>target/bigdata-stat-3.2.1.jar</fromFile>
14                     <!-- 部署目录 -->
15                     <url>scp://root@10.1.108.65/var/lib/hadoop-hdfs</url>
16                 </configuration>
17             </plugin>


4. 在命令行执行:
 mvn clean package wagon:sshexec wagon:upload-single 

5. plug-in绑定生命周期方式
但是这种方式还需要在命令行指定插件以及目标(goals),还可以将插件绑定到Maven的生命周期中,让其自动执行:

 1 <plugins>
 2             <plugin>
 3                 <groupId>org.codehaus.mojo</groupId>
 4                 <artifactId>wagon-maven-plugin</artifactId>
 5                 <version>1.0</version>
 6                 <executions>
 7                     <execution>
 8                         <id>upload-deploy</id>
 9                         <!-- 运行package打包的同时运行upload-single和sshexec -->
10                         <phase>package</phase>
11                         <goals>
12                             <goal>sshexec</goal>
13                             <goal>upload-single</goal>
14                         </goals>
15                         <configuration>
16                             <serverId>deploy_server_65</serverId>
17                             <!-- 需要部署的文件 -->
18                             <fromFile>target/bigdata-stat-3.2.1.jar</fromFile>
19                             <!-- 部署目录 -->
20                             <url>scp://root@10.1.108.65/var/lib/hadoop-hdfs</url>
21                             <commands>
22                                 <!-- 删除之前文件 -->
23                                 <command>rm -rf /var/lib/hadoop-hdfs/bigdata-stat-3.2.1.jar</command>
24                             </commands>
25                             <displayCommandOutputs>true</displayCommandOutputs>
26                         </configuration>
27                     </execution>
28                 </executions>
29             </plugin>
30 </plugins>

  可以看到,增加了executors/executor节点,并在节点中通过phase节点了plugin执行的阶段以及<goals>节点指令了执行的目标。

原文地址:https://www.cnblogs.com/xiashiwendao/p/7862571.html