1. 程式人生 > >Maven外掛wagon-maven-plugin自動化部署

Maven外掛wagon-maven-plugin自動化部署

檔案上傳到伺服器

Maven專案可使用mvn package指令打包,打包完成後包位於target目錄下,要想在遠端伺服器上部署,首先要將包上傳到伺服器。

在專案的pom.xml中配置wagon-maven-plugin外掛:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>

<version>2.8</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/test.jar</fromFile
>

<url>scp://user:[email protected]/home/xxg/Desktop</url>
</configuration>
</plugin>
</plugins>
</build>

<fromFile>target/test.jar</fromFile>是要上傳到伺服器的檔案,一般來說是jar或者war包,<url>scp://user:[email protected]/home/xxg/Desktop</url>配置伺服器的使用者、密碼、地址以及檔案上傳的目錄。

配置完成後,執行命令:

1
mvn clean package wagon:upload-single

packagewagon:upload-single分別對專案進行打包和上傳操作。命令執行結束後,檔案就會成功上傳到Linux伺服器。

在伺服器上執行Linux命令

部署專案不僅要把包傳上伺服器,而且還需要執行一些指令來啟動程式。在程式啟動之前,可能還需要將原來的程式關閉。

執行jar檔案

啟動jar包通常會使用java -jar test.jar命令,可以將命令配置在pom.xml中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/test.jar</fromFile>
<url>scp://user:[email protected]/home/xxg/Desktop</url>
<commands>
<!-- 殺死原來的程序 -->
<command>pkill -f test.jar</command>
<!-- 重新啟動test.jar,程式的輸出結果寫到nohup.out檔案中 -->
<command>nohup java -jar /home/xxg/Desktop/test.jar > /home/xxg/Desktop/nohup.out 2>&amp;1 &amp;</command>
</commands>
<!-- 顯示執行命令的輸出結果 -->
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
</plugins>
</build>

配置完成後,執行命令:

1
mvn clean package wagon:upload-single wagon:sshexec

packagewagon:upload-singlewagon:sshexec分別對專案進行打包、上傳、執行command命令的操作。命令執行結束後,在伺服器上檢視程序ps -ef|grep test.jar,或者檢視nohup.out檔案,就可以看到Java程式在伺服器上已經啟動。

上傳war包並啟動Tomcat

如果是Web應用,可使用伺服器上的Tomcat來部署。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/javawebdeploy.war</fromFile>
<!-- 上傳到Tomcat的webapps目錄下 -->
<url>scp://user:[email protected]/coder/tomcat/apache-tomcat-7.0.55/webapps</url>
<commands>
<!-- 重啟Tomcat -->
<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>
<command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>
<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
</plugins>
</build>

完成以上配置後,同樣可通過mvn clean package wagon:upload-single wagon:sshexec命令自動部署。

配置execution

如果你覺得mvn clean package wagon:upload-single wagon:sshexec命令太長了不好記,那麼可以配置execution,在執行package打包的同時執行upload-single和sshexec。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>upload-deploy</id>
<!-- 執行package打包的同時執行upload-single和sshexec -->
<phase>package</phase>
<goals>
<goal>upload-single</goal>
<goal>sshexec</goal>
</goals>
<configuration>
<fromFile>target/javawebdeploy.war</fromFile>
<url>scp://user:[email protected]/coder/tomcat/apache-tomcat-7.0.55/webapps</url>
<commands>
<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>
<command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>
<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

配置完成後,即可使用mvn clean package來代替mvn clean package wagon:upload-single wagon:sshexec

相關推薦

Maven外掛wagon-maven-plugin自動化部署

檔案上傳到伺服器 Maven專案可使用mvn package指令打包,打包完成後包位於target目錄下,要想在遠端伺服器上部署,首先要將包上傳到伺服器。 在專案的pom.xml中配置wagon-maven-plugin外掛: 123456789101112131415

在搭建基於jenkins+maven+git+docker的全自動化部署時遇到的問題

系統版本: 由於docker的安裝要求linux系統核心必須在3.10以上,因此,系統版本我選擇的是centos7.2,採用的是淘寶的雲伺服器,因此在更換系統以及在今後的docker等方面都簡單了不少,不得不說阿里的東西還是很不錯的,由於公司要求,我們

eclipse線上安裝maven外掛地址及plugin jar包地址

找了半天才找到Eclipse的maven外掛的地址 http://eclipse.org/m2e/ http://eclipse.org/m2e/download/ Latest m2e release (recommended) http://download.ecli

在Eclipse中Tomcat和Maven外掛相互配合進行熱部署

關於m2eclipse與tomcatplugin外掛如何相互配合進行熱部署 沒有使用Maven外掛時,如何進行tomcat熱部署 一、首先在Eclipse中安裝tomcatplugin外掛,詳細安裝方法見http://zheng12tian.iteye.com/blog/17

Maven外掛maven-assembly-plugin

使用Maven對Web專案進行打包,預設為war包;但有些時候,總是希望打成zip包(亦或其他壓縮包),maven-war-plugin外掛就無能為力了,這時就用到了maven-assembly-plugin外掛了,官方網址: 該外掛能打包成指定格式分發包,更重要的是能夠

maven外掛maven-surefire-plugin生成單元測試報告單(.html)

在pom.xml新增外掛: <build> <finalName>javawebdemo</finalName> <plu

maven外掛mavenmaven-surefire-plugin

1.maven-surefire-plugin是個什麼鬼? 如果你執行過 mvn test 或者執行其他maven命令時跑了測試用例,你就已經用過 maven-surefire-plugin 了。 maven-surefire-plugin 是maven裡執行測試用例的

【Jenkins】Jenkins+maven+git / SVN 搭建專案自動化部署整合環境

目錄 一、完成jdk的安裝  參考我的另一博文: (1)Jenkins部署在Windows系統,jdk安裝在Windows系統:【jdk】window10:jdk 8下載和安裝步驟 二、完成git/svn的安裝 (一)根據公司使用

Maven 外掛maven-antrun-plugin

雖然Maven已經代替Ant,成為Java 工業領域事實上的構建標準.但在某些情況下,如果可以用Ant命令,還是很方便的. 藉助 maven-antrun-plugin 外掛,可以在Maven執行時,額外執行Ant指令碼. 打包完成後,把構建結果複製

Maven外掛maven-resources-plugin

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

Maven學習總結(48)——利用wagon-maven-plugin外掛自動化部署Jar包/war包到Linux遠端伺服器

前言: Maven專案可使用mvn package指令打包,打包完成後包位於target目錄下,要想在遠端伺服器上部署,首先要將包上傳到伺服器。程式開發完成後部署到線上Linux伺服器,可能需要經歷打包、將包檔案傳到伺服器、SSH連上伺服器、敲命令啟動程式等一系列繁瑣的步驟

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

1.在maven中新增依賴 1 <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/wagon-maven-plugin --> 2 <dependency> 3 <g

使用Maven外掛Cargo實現自動化部署

概念 Cargo是一組幫助使用者操作Web容器的工具,能夠實現自動化部署,並且支援幾乎所有的Web容器,如Tomcat、JBoss、Jetty和Glassfish等。 Cargo通過cargo-maven2-plugin提供了Maven整合,可

自動化部署Maven的私有倉庫Nexus

jenkins 自動化部署 maven nexus 1、什麽是Nexus?在前面進行maven項目的構建中,可以看到在構建的過程中需要安裝maven的依賴插件,如圖:而在maven的默認配置中是在官網的中央倉庫和第三方的maven倉庫進行下載,速度偏慢。這裏提供阿裏雲的maven插件庫(htt

jenkins+git+maven搭建自動化部署項目環境(轉)

operator 作用 主服務器 裏的 tag regexp vra 缺失 內容 知識背景 首先需要理解的是,Jenkins是幫我們將代碼進行統一的編譯打包、還可以放到tomcat容器中進行發布。 意思是我們通過配置,將以前:編譯、打包、上傳、部署到Tomcat中的過程交由

jenkins自動化部署項目4 -- 安裝和配置jdk、maven、git

lib src 但是 cal 因此 jenkin 工具配置 span 部署 Jenkins提供了自動安裝jdk,maven,git的功能,在【系統設置-全局工具配置】裏,但是我自動安裝沒反應,因此我是先手工安裝和配置它們的環境變量然後再在【系統設置-全局工具配置】裏配置:

maven,git python指令碼 自動化 部署 spring boot進銷存系統

準備環境 虛擬機器兩臺 centos 7.2 192.168.255.128 centos 7.2 192.168.255.129 maven 3.0.5 java 1.8.0_181   git version 1.8.3.1 安裝 git yum in

使用jenkins實現自動化部署的案例記錄:tomcat+svn+maven+ssh+jenkins

使用jenkins實現自動化部署的案例記錄:tomcat+svn+maven+ssh+jenkins 1.全域性配置,配置專案對應的tomcat伺服器的ssh登入地址,埠,密碼,路徑(寫/即可) 2.2-系統maven配置 3.構建一個maven風格的專案,選擇jdk版本

Maven、Jenkins實現自動化部署

工程例項程式碼:https://github.com/chocolateBlack/multi_env_folder_maven 利用Maven、Jenkins實現專案自動化部署,能夠按照bin、conf、lib檔案進行打包,並能夠通過Jenkins按照環境一鍵發不到伺服器上 首先通過Maven外掛

exclipse使用maven mybatis-generator-maven-plugin 外掛生成程式碼的坑

  按照網上的步驟使用maven配置生成mybatis程式碼就是行,沒有報錯也沒有執行. 步驟是這樣的: 1.在pom.xml配置 <build> <finalName>byh</finalName> <