日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

许晓斌_Maven实战(七)——常用Maven插件介绍(上)

發布時間:2023/12/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 许晓斌_Maven实战(七)——常用Maven插件介绍(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

from:?http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin

我們都知道Maven本質上是一個插件框架,它的核心并不執行任何具體的構建任務,所有這些任務都交給插件來完成,例如編譯源代碼是由maven-compiler-plugin完成的。進一步說,每個任務對應了一個插件目標(goal),每個插件會有一個或者多個目標,例如maven-compiler-plugin的compile目標用來編譯位于src/main/java/目錄下的主源碼,testCompile目標用來編譯位于src/test/java/目錄下的測試源碼。

用戶可以通過兩種方式調用Maven插件目標。第一種方式是將插件目標與生命周期階段(lifecycle phase)綁定,這樣用戶在命令行只是輸入生命周期階段而已,例如Maven默認將maven-compiler-plugin的compile目標與compile生命周期階段綁定,因此命令mvn compile實際上是先定位到compile這一生命周期階段,然后再根據綁定關系調用maven-compiler-plugin的compile目標。第二種方式是直接在命令行指定要執行的插件目標,例如mvn archetype:generate?就表示調用maven-archetype-plugin的generate目標,這種帶冒號的調用方式與生命周期無關。

認識上述Maven插件的基本概念能幫助你理解Maven的工作機制,不過要想更高效率地使用Maven,了解一些常用的插件還是很有必要的,這可以幫助你避免一不小心重新發明輪子。多年來Maven社區積累了大量的經驗,并隨之形成了一個成熟的插件生態圈。Maven官方有兩個插件列表,第一個列表的GroupId為org.apache.maven.plugins,這里的插件最為成熟,具體地址為:http://maven.apache.org/plugins/index.html。第二個列表的GroupId為org.codehaus.mojo,這里的插件沒有那么核心,但也有不少十分有用,其地址為:http://mojo.codehaus.org/plugins.html。

接下來筆者根據自己的經驗介紹一些最常用的Maven插件,在不同的環境下它們各自都有其出色的表現,熟練地使用它們能讓你的日常構建工作事半功倍。

maven-antrun-plugin

http://maven.apache.org/plugins/maven-antrun-plugin/

maven-antrun-plugin能讓用戶在Maven項目中運行Ant任務。用戶可以直接在該插件的配置以Ant的方式編寫Target,然后交給該插件的run目標去執行。在一些由Ant往Maven遷移的項目中,該插件尤其有用。此外當你發現需要編寫一些自定義程度很高的任務,同時又覺得Maven不夠靈活時,也可以以Ant的方式實現之。maven-antrun-plugin的run目標通常與生命周期綁定運行。

maven-archetype-plugin

http://maven.apache.org/archetype/maven-archetype-plugin/

Archtype指項目的骨架,Maven初學者最開始執行的Maven命令可能就是mvn archetype:generate,這實際上就是讓maven-archetype-plugin生成一個很簡單的項目骨架,幫助開發者快速上手。可能也有人看到一些文檔寫了mvn archetype:create,但實際上create目標已經被棄用了,取而代之的是generate目標,該目標使用交互式的方式提示用戶輸入必要的信息以創建項目,體驗更好。maven-archetype-plugin還有一些其他目標幫助用戶自己定義項目原型,例如你由一個產品需要交付給很多客戶進行二次開發,你就可以為他們提供一個Archtype,幫助他們快速上手。

maven-assembly-plugin

http://maven.apache.org/plugins/maven-assembly-plugin/

maven-assembly-plugin的用途是制作項目分發包,該分發包可能包含了項目的可執行文件、源代碼、readme、平臺腳本等等。maven-assembly-plugin支持各種主流的格式如zip、tar.gz、jar和war等,具體打包哪些文件是高度可控的,例如用戶可以按文件級別的粒度、文件集級別的粒度、模塊級別的粒度、以及依賴級別的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly-plugin要求用戶使用一個名為assembly.xml的元數據文件來表述打包,它的single目標可以直接在命令行調用,也可以被綁定至生命周期。

maven-dependency-plugin

http://maven.apache.org/plugins/maven-dependency-plugin/

maven-dependency-plugin最大的用途是幫助分析項目依賴,dependency:list能夠列出項目最終解析到的依賴列表,dependency:tree能進一步的描繪項目依賴樹,dependency:analyze可以告訴你項目依賴潛在的問題,如果你有直接使用到的卻未聲明的依賴,該目標就會發出警告。maven-dependency-plugin還有很多目標幫助你操作依賴文件,例如dependency:copy-dependencies能將項目依賴從本地Maven倉庫復制到某個特定的文件夾下面。

maven-enforcer-plugin

http://maven.apache.org/plugins/maven-enforcer-plugin/

在一個稍大一點的組織或團隊中,你無法保證所有成員都熟悉Maven,那他們做一些比較愚蠢的事情就會變得很正常,例如給項目引入了外部的SNAPSHOT依賴而導致構建不穩定,使用了一個與大家不一致的Maven版本而經常抱怨構建出現詭異問題。maven-enforcer-plugin能夠幫助你避免之類問題,它允許你創建一系列規則強制大家遵守,包括設定Java版本、設定Maven版本、禁止某些依賴、禁止SNAPSHOT依賴。只要在一個父POM配置規則,然后讓大家繼承,當規則遭到破壞的時候,Maven就會報錯。除了標準的規則之外,你還可以擴展該插件,編寫自己的規則。maven-enforcer-plugin的enforce目標負責檢查規則,它默認綁定到生命周期的validate階段。

maven-help-plugin

http://maven.apache.org/plugins/maven-help-plugin/

maven-help-plugin是一個小巧的輔助工具,最簡單的help:system可以打印所有可用的環境變量和Java系統屬性。help:effective-pomhelp:effective-settings最為有用,它們分別打印項目的有效POM和有效settings,有效POM是指合并了所有父POM(包括Super POM)后的XML,當你不確定POM的某些信息從何而來時,就可以查看有效POM。有效settings同理,特別是當你發現自己配置的settings.xml沒有生效時,就可以用help:effective-settings來驗證。此外,maven-help-plugin的describe目標可以幫助你描述任何一個Maven插件的信息,還有all-profiles目標和active-profiles目標幫助查看項目的Profile。

maven-release-plugin

http://maven.apache.org/plugins/maven-release-plugin/

maven-release-plugin的用途是幫助自動化項目版本發布,它依賴于POM中的SCM信息。release:prepare用來準備版本發布,具體的工作包括檢查是否有未提交代碼、檢查是否有SNAPSHOT依賴、升級項目的SNAPSHOT版本至RELEASE版本、為項目打標簽等等。release:perform則是簽出標簽中的RELEASE源碼,構建并發布。版本發布是非常瑣碎的工作,它涉及了各種檢查,而且由于該工作僅僅是偶爾需要,因此手動操作很容易遺漏一些細節,maven-release-plugin讓該工作變得非常快速簡便,不易出錯。maven-release-plugin的各種目標通常直接在命令行調用,因為版本發布顯然不是日常構建生命周期的一部分。


總結

以上是生活随笔為你收集整理的许晓斌_Maven实战(七)——常用Maven插件介绍(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费的三级网站 | 欧美.www| 青娱乐精品视频 | 中文字幕理伦片免费看 | 色图18p| 国产麻豆精品一区二区 | 色妇网 | 欧美77777| 婷婷丁香九月 | 中文字幕在线日韩 | 免费看污片的网站 | 蜜桃成熟时李丽珍在线观看 | 精品久久久久久久久久久久久久 | 成人学院中文字幕 | 97夜色 | 2025国产精品 | 性淫bbwbbwbbw| 伊人99| 大尺度做爰床戏呻吟舒畅 | 狠狠v欧美v日韩v亚洲ⅴ | 久久中文免费视频 | 日日爱夜夜操 | 日韩黄色在线播放 | 久久最新免费视频 | 无码人妻丰满熟妇精品 | 黑人欧美一区二区三区 | 在线观看麻豆av | 亚洲欧洲成人精品久久一码二码 | 亚洲精品中文字幕乱码三区 | 成人h视频 | 成人高清免费 | 国产精品911 | 国产女18毛片多18精品 | www好男人 | 欧美性生活xxx | 美国成人免费视频 | 好色先生视频污 | 无码国产69精品久久久久同性 | 国内少妇精品 | 久综合网 | 日韩欧美中文字幕精品 | 黄色成人免费视频 | 男女曰逼视频 | 国产精品久久久91 | 天天舔天天射 | 久久精品视频5 | 日韩欧美超碰 | 色综合久久久久久久 | 波多野结衣中文字幕在线 | 国内精品视频一区 | 91视频导航| 视频二区 | 精品香蕉视频 | 欧美精品一区二区三区三州 | 日韩在线中文字幕 | 国产人妻人伦精品1国产盗摄 | h片免费网站| 日本三级吃奶头添泬无码苍井空 | 手机av片| 亚洲狼人天堂 | 黄色视屏在线看 | 国产一区二区毛片 | 国产美女久久久久久 | 成人影视免费观看 | 秘密基地电影免费版观看国语 | 国产91专区 | 国产久久精品 | 国产乱妇乱子 | 精品久久久视频 | 亚洲区一区二区三区 | 国产精品电影一区 | 麻豆久久久久 | 成人精品在线观看 | 性高潮影院| 午夜精品久久久久久久四虎美女版 | av在线播放地址 | 欧美大片一区二区 | 在线黄色av | 国产男同gay网站 | 国产亚洲制服欧洲高清一区 | 免费男女视频 | 成人性生交大片免费 | 欧美日韩四区 | 不卡一区在线 | 麻豆黄色片 | 成年人在线观看 | 久久亚洲精少妇毛片午夜无码 | 97色吧| 成人av在线播放网站 | 78日本xxxxxxxxx59 亚洲图片小说视频 | 少妇特黄a一区二区三区 | www.黄色免费| 波多野结衣视频免费在线观看 | 三级性生活片 | 男人操女人下面视频 | 校园春色在线观看 | 欧美日韩一区二区综合 | 屁股夹体温计调教play | 色呦网站|