大家好,我是IT修真院鄭州分院第6期的學員,一枚正直純潔善良的JAVA程序員今天給大家分享一下,Maven常用打包插件的使用.
1.背景介紹
Maven的使用貫穿task1-9,打包用的也是非常的多,
但是普通的打包方式很有可能滿足不了我們的需求
,所以我們就需要功能更強大的打包插件來幫助我們開發項目
2.知識剖析
常用的打包插件
Apache Maven JAR Plugin
Apache Maven Source Plugin
Apache Maven Dependency Plugin
Apache Maven Compiler Plugin
Apache Maven Assembly Plugin
Apache Maven Shade Plugin
Apache Maven JAR Plugin
將指定的一些文件打包成jar包 這個比較簡單。
就將指定的文件打成jar包,使用mainfest,可以配置主執行類。
有主執行類,使用mvn package打包后可以用java-jar直接執行。
Apache Maven Source Plugin
SOURCE插件可用于從命令行創建項目源代碼的jar文件,或將目標綁定到項目的生成周期。使用命令mvn source:jar生成jar
Apache Maven Dependency Plugin
Dependency插件提供了處理工件的功能。它可以將本地或遠程存儲庫中的工件復制和/或解包到指定的位置
Apache Maven Compiler Plugin
編譯器插件在Maven生命周期中已經被綁定到適當的階段,因此在各自的階段自動執行。
Apache Maven Assembly Plugin
Maven的Assembly Plugin主要是為了允許用戶將項目輸出及其依賴項,
模塊,站點文檔和其他文件聚合到一個可分發的歸檔文件中。
您的項目可以使用方便的預制裝配描述符輕松地構建分布“組件” 。
這些描述符處理許多常見操作,例如將項目的工件與生成的文檔一起打包到一個zip壓縮文件中。
或者,您的項目可以提供自己的描述符,并假定對程序集中的依賴關系,
模塊,文件集和單個文件的打包方式進行更高級別的控制
目前它可以創建以下格式的發行版:壓縮,柏油,tar.gz(或tgz),tar.bz2(或tbz2),tar.snappy,tar.xz(或txz),罐,DIR,戰爭,以及ArchiveManager已配置的任何其他格式
Apache Maven Shade Plugin
這個插件提供了將工件打包到超級jar文件中的能力,包括它的依賴關系,以及對一些依賴關系的包進行陰影處理(即重命名)。
http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
3.常見問題
幾種打jar包的方式
運行jar找不到主方法和主清單屬性
怎么把jar包掛載到后臺運行
4.解決方案
5.編碼實戰
6.擴展思考
打包的格式的種類
7.參考文獻
Maven Plugin 官方文檔
http://zhaoyanblog.com/archives/674.html
http://www.blogjava.net/liuguly/archive/2017/05/03/432496.html
http://blog.csdn.net/enweitech/article/details/67631997
8.更多討論
Q:jason-tag-lib的報錯怎么解決?
以倉庫中 某個包為例
mvn install:install-file -Dfile=本地jar包的位置 ?-DgroupId=上面的groupId ?-DartifactId=上面的artifactId ?-Dversion=上面的version ?-Dpackaging=jar
Q:有沒有辦法把依賴打進jar包中
maven shade 和maven assembly 進行配置之后都可以打fat jar (即可直接執行的jar)
Q:maven是怎樣解決jar包沖突的
使用<exclusion>元素可以將會引起沖突的元素排除。
更多討論請觀看騰訊視頻
PPT:PPT
今天就到這里? 下次再見