wagon-maven-plugin實現自動打包部署到服務器


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM