通常情況下,程序開發完成后部署到線上Linux服務器,可能需要經歷打包、將包文件傳到服務器、SSH連上服務器、敲命令啟動程序等一系列繁瑣的步驟。實際上這些步驟都可以通過Maven的一個插件wagon-maven-plugin來自動完成。
文件上傳到服務器
Maven項目可使用mvn package
指令打包,打包完成后包位於target目錄下,要想在遠程服務器上部署,首先要將包上傳到服務器。
在項目的pom.xml中配置wagon-maven-plugin插件:
1 |
<build> |
<fromFile>target/test.jar</fromFile>
是要上傳到服務器的文件,一般來說是jar或者war包,<url>scp://user:password@192.168.20.128/home/xxg/Desktop</url>
配置服務器的用戶、密碼、地址以及文件上傳的目錄。
配置完成后,運行命令:
1 |
mvn clean package wagon:upload-single |
package
、wagon:upload-single
分別對項目進行打包和上傳操作。命令運行結束后,文件就會成功上傳到Linux服務器。
在服務器上執行Linux命令
部署項目不僅要把包傳上服務器,而且還需要執行一些指令來啟動程序。在程序啟動之前,可能還需要將原來的程序關閉。
運行jar文件
啟動jar包通常會使用java -jar test.jar
命令,可以將命令配置在pom.xml中:
1 |
<build> |
配置完成后,運行命令:
1 |
mvn clean package wagon:upload-single wagon:sshexec |
package
、wagon:upload-single
、wagon:sshexec
分別對項目進行打包、上傳、運行command命令的操作。命令運行結束后,在服務器上查看進程ps -ef|grep test.jar
,或者查看nohup.out文件,就可以看到Java程序在服務器上已經啟動。
上傳war包並啟動Tomcat
如果是Web應用,可使用服務器上的Tomcat來部署。
1 |
<build> |
完成以上配置后,同樣可通過mvn clean package wagon:upload-single wagon:sshexec
命令自動部署。
配置execution
如果你覺得mvn clean package wagon:upload-single wagon:sshexec
命令太長了不好記,那么可以配置execution,在運行package打包的同時運行upload-single和sshexec。
1 |
<build> |
配置完成后,即可使用mvn clean package
來代替mvn clean package wagon:upload-single wagon:sshexec
。