wagon-maven-plugin實現自動打包部署到伺服器
阿新 • • 發佈:2019-01-04
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:[email protected]: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