使用Maven打包項目并上傳到Linux服務器

在我們日常開發(fā)中超营,我們經(jīng)常會使用maven來構建項目协屡,項目構建之后通常會使用ssh遠程連接主機并上傳到服務器上去部署赊抖,你有沒有想過使用maven提供的插件一鍵即可完成氛雪,這樣對于我們開發(fā)來說,不僅節(jié)省時間還省去了許多麻煩的問題,何樂而不為呢墓猎,下面我們將通過實際的需求來解決這個問題毙沾。

第一步:我們需要配置maven的settings.xml文件,在下面的選項中打開 open file 這個連接左胞,Eclipse會打開該文件,

Setting

之后我們需要定位到<servers></servers>節(jié)點遍烦,我們根據(jù)它提供的Demo服猪,復制一個即可拐云,下面是我選擇的一個server配置節(jié)點。


Server configuration

其中server中的節(jié)點配置膳帕,id為網(wǎng)絡id可隨意命名薇缅,但是我們要記住,因為稍后的時間我們需要使用到恬砂,username則是連接到遠程主機的用戶名蓬痒,password則是遠程主機的密碼,這一步配置好了之后狱掂,基本上就完成了maven的基本配置了。

第二步:這個步驟就需要加入maven的插件來支持遠程操作了鸟顺,在項目的pom.xml中配置wagon-maven-plugin插件:

<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>
            <dependencies>
                <dependency>
                    <groupId>com.jcraft</groupId>
                    <artifactId>jsch</artifactId>
                    <version>0.1.54</version>
                </dependency>
                <dependency>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk16</artifactId>
                    <version>1.46</version>
                </dependency>
            </dependencies>
            <configuration>
                <serverId>doudizhu</serverId>
                <fromFile>target/LePoker.jar</fromFile>
                <url>scp://192.168.1.201/data/ddz</url>
                <commands>
                    <command>sh /data/project/app/manager.sh stop</command> <command>rm -rf 
                        /data/project/app/Project.jar</command> <command>sh /data/ddz/manager.sh start</command>
                    <command>pkill -f Project.jar</command>
                    <command>nohup java -jar /data/project/app/Project.jar >
                        /data/project/app/logs/monitor.log 2>&amp;1 &amp;</command>
                </commands>
                <!-- 顯示運行命令的輸出結果 -->
                <displayCommandOutputs>true</displayCommandOutputs>
            </configuration>
        </plugin>
    </plugins>
</build>

需要注意的是這里的serverId需要配置成我們上一個步驟配置的deploymentRepo,不然可能會提示你找不到,或者你也可以省略上一個步驟欧芽,直接在url節(jié)點中指定遠程主機的用戶名和密碼即可,這里不過多饒舌了千扔。完成了上面步驟之后曲楚,就可以使用maven的命令來構建項目了褥符,然后你就喷楣。。抡蛙。會得到一個大大的錯誤:

mvn clean package wagon:upload-single

錯誤:

[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- wagon-maven-plugin:1.0:upload-single (default-cli) @ LePoker ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.018 s
[INFO] Finished at: 2017-12-08T09:03:00+08:00
[INFO] Final Memory: 31M/306M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0:upload-single (default-cli) on project LePoker: Unable to create a Wagon instance for scp://192.168.1.201/project/app: Cannot connect. Reason: Session.connect: java.security.NoSuchAlgorithmException: Algorithm DH not available -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

這個異常提示java.security.NoSuchAlgorithmException: Algorithm DH not available惋耙,Algorithm DH這個算法不可用熊昌,這時候我們就不知道如何下手了婿屹,經(jīng)過我一波搜索,總算找到了解決方案了届腐,那就是看下一個步驟。

第三步:完成了上兩個步驟硬萍,我們得到了一個大大的異常围详,以至于我們輾轉發(fā)側,難以入眠买羞,為了打破這個異常畜普,我們接下來解決這個問題婉徘。首先我們需要定位問題盖呼,這個異常提示我們找不到DH這個算法化撕,所以我們就添加一個算法不就可以了嗎,具體步驟如下:
C:\xxx\Java\jdk1.8.0_131\jre\lib\ext 目前小編我的計算機java目錄如下植阴,進入該目錄掠手,然后你會發(fā)現(xiàn)這個文件夾下面有很多的jar包,我們不管它們干什么用的喷鸽,我們先打開瀏覽器做祝,下載:bcprov-jdk16-1.46.jar 這個文件,下載完成之后復制到我們的C:\xxx\Java\jdk1.8.0_131\jre\lib\ext這個目錄即可编兄,然后最后一步并是指定該算法即可声登,打開目錄C:\xxx\Java\jdk1.8.0_131\jre\lib\security 文件夾,定位到java.security文件舒岸,打開該文件然后定位到

#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
# 這一行并是我們新增的內容蛾派,指定其算法的提供者為我們剛提供的jar包中的算法
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

完成了以上步驟之后个少,我們再使用maven的命令重新構建一下項目即可完成構建并上傳到服務器上去了夜焦。

mvn clean package wagon:upload-single

上面的命令只提供了上傳文件到服務器茫经,如果需要執(zhí)行命令還需要增加如下命令:

package wagon:upload-single wagon:sshexec

成功的信息打印如下:

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Project 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- wagon-maven-plugin:1.0:upload-single (default-cli) @ Project ---
[INFO] Uploading: D:\Workspace\Code\Project \target\Project .jar scp://192.168.1.201/data/project/app/Project .jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.164 s
[INFO] Finished at: 2017-12-08T09:17:50+08:00
[INFO] Final Memory: 43M/423M
[INFO] ------------------------------------------------------------------------

到此我們便完成了一鍵部署的操作了卸伞。


The end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末垮耳,一起剝皮案震驚了整個濱河市终佛,隨后出現(xiàn)的幾起案子雾家,更是在濱河造成了極大的恐慌,老刑警劉巖豌研,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹃共,死亡現(xiàn)場離奇詭異霜浴,居然都是意外死亡,警方通過查閱死者的電腦和手機阴孟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門永丝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慕嚷,“玉大人喝检,你說我怎么就攤上這事≡杼罚” “怎么了损俭?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵雁仲,是天一觀的道長拧咳。 經(jīng)常有香客問我骆膝,道長灶体,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮樟结,結果婚禮上,老公的妹妹穿的比我還像新娘碎连。我一直安慰自己鱼辙,他們只是感情好廉嚼,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著倒戏,像睡著了一般怠噪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杜跷,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天傍念,我揣著相機與錄音,去河邊找鬼葱椭。 笑死捂寿,一個胖子當著我的面吹牛,可吹牛的內容都是我干的孵运。 我是一名探鬼主播秦陋,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼治笨!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后弱恒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡师崎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鬼雀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡泼诱,死狀恐怖屉栓,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤启绰,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布格带,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏镶摘。R本人自食惡果不足惜凄敢,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一拒逮、第九天 我趴在偏房一處隱蔽的房頂上張望栅隐。 院中可真熱鬧佣赖,春花似錦外傅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至换可,卻和暖如春俭识,著一層夾襖步出監(jiān)牢的瞬間堤瘤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工叶骨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跪帝,地道東北人斑唬。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓聘裁,卻偏偏與公主長得像衡便,于是被迫代替她去往敵國和親呆抑。 傳聞我的和親對象是個殘疾皇子岂嗓,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)厌殉,斷路器公罕,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評論 6 342
  • |-1-更新內容[6.從倉庫解析依賴的機制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項目使用到構件,在ma...
    zlcook閱讀 6,052評論 0 25
  • 大家好,我是悠貝南山保利繪本館的真真老師。今天要給大家推薦的繪本是——《打瞌睡的房子》芥备。 如果房子也會打瞌睡爱咬,那一...
    茍茍的腳步_繪本與成長閱讀 27,124評論 0 3
  • 看到微信手足群里劉家大少說要請假回家去幫著薅花生,周五回去绊起,請了一周的假精拟,遠在南方之南的小妹也請了20天假回去幫著...
    Rachel09閱讀 490評論 1 3