使用Maven的assembly插件實現自定義打包

1、背景

  最近咱們項目愈來愈多了,而後我就在想如何才能把基礎服務的打包方式統一塊兒來,而且能夠實現按照咱們的要求來生成,經過研究,咱們經過使用maven的assembly插件完美的實現了該需求,爽爆了有木有。本文分享該插件的配置以及微服務的統一打包方式。html

2、配置步驟及其餘事項

1.首先咱們須要在pom.xml中配置maven的assembly插件
使用Maven的assembly插件實現自定義打包git

2.接着咱們在src/main/assembly文件中配置assembly.xml文件
使用Maven的assembly插件實現自定義打包github

其中,生成的lib文件夾下放該項目的全部依賴以及該服務jar包,src/main/bin文件夾下咱們通常放start.sh和stop.sh兩個腳本文件用來開啓和關閉該服務,打包後直接放到根目錄下。生成的tar.gz文件的名字爲:maven-assembly-plugin插件中配置的finalName-assembly.xml配置的id(若assembly中沒有指定id,則只有前半部分).apache

assembly的具體語法,請參見官網:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.htmlmaven

這裏面涉及到如何生成可執行的jar包,具體參見:用Maven快速生成帶有依賴的可執行jar包ide

3.項目目錄結構微服務

其中紅色方框內就是經過assembly插件是生成的tar.gz文件,解壓后里面的結構以下:工具

使用Maven的assembly插件實現自定義打包
其中lib目錄下是本項目生成的可執行jar包以及它的全部依賴jar包。若assembly插件中配置<useProjectArtifact>爲false,則不會生成assembly-demo文件夾,直接就是lib文件夾以及兩個腳本文件。插件

代碼Github地址:https://github.com/hafizzhang/assembly-demo.gitxml

4.打包方式思考

咱們經過這種方式,每一個微服務就是一個以服務名稱命名的tar.gz文件,解壓后里面lib目錄下是該服務生成的可執行jar包以及它全部的依賴jar包,咱們直接運行根目錄下start.sh和stop.sh兩個腳本文件來進行服務的開啓和關閉。風格統一,簡單明瞭!

3、總結

  隨着微服務的愈來愈火,咱們將服務進行細粒度拆分後,也須要很好的把服務的打包以及部署方式進行統一,這樣咱們就能夠走自動化發佈工具來進行統一服務的管理和部署,使得愈來愈方便。

相關文章
相關標籤/搜索