Maven筆記 - 3. Maven生命周期

概念

  • lifecycle 生命周期
  • phases 階段噪裕。生命周期由多個階段組成
  • goals 目標募闲。每個階段都可以有多個目標被執(zhí)行

Maven有3個內(nèi)置生命周期

  • default 處理項目構(gòu)建和部署
  • clean 清除Maven產(chǎn)生的文件和目錄
  • site 處理項目文檔的創(chuàng)建

備注

  • Maven以被指定的階段(phase)為基礎(chǔ)推斷使用的生命周期(lifecycle)肴熏。如==package==階段表明使用==default==生命周期忽孽。
  • 每個階段(phase)由多個插件目標(plugin goals)組成。一個插件目標是一個特定的用來構(gòu)建項目的任務盯另。有一些目標只在特定的階段起作用(例如:Compiler插件的的compile目標只在compile階段起作用性含,但是CheckStyle插件的checkstyle目標可以在任何階段運行)。所以有一些目標是被綁定到特定的生命周期的階段的鸳惯。

生命周期的重要階段

clean生命周期
  • clean階段 移除所有由Maven在構(gòu)建階段創(chuàng)建的文件和目錄商蕴。
site生命周期
  • site階段 產(chǎn)生項目的文檔
default生命周期
  • validate階段 校驗所有項目信息是否存在和正確
  • process-resources階段 復制項目resources到目標目錄中打包
  • compile階段 編譯源碼
  • test階段 運行單元測試
  • integration-test階段 在集成測試環(huán)境中處理打包
  • verify階段 運行校驗來檢驗打包的有效性
  • install階段 將打好的包發(fā)布到本地倉庫
  • deploy階段 將打好的包發(fā)布到配置的倉庫中

關(guān)于階段、插件和目標的表格

階段 插件 目標
clean Maven Clean plugin clean
site Maven Site plugin site
process-resources Maven Resources plugin resource
compile Maven Compiler plugin compile
test Maven Surefire plugin test
package Varies based on the packaging; for instance, the Maven JAR plugin jar(in the case of a Maven JAR plugin)
install Maven install plugin install
deploy Maven deploy plugin deploy

配置文件

Maven提供了三種類型的配置文件

  • 項目配置文件:定義在項目的pom文件中
  • 用戶配置文件:定義在用戶settings文件中(用戶HOME路徑的.m2子路徑中)
  • 全局配置文件:定義在全局settings文件中(M2_HOME的conf路徑中)
配置文件屬性
pom.xml中
<profile>
    <id>test</id>
    <activation>...</activation>
    <build>...</build>
    <modules>...</modules>
    <repositories>...</repositories>
    <pluginRepositories>...</pluginRepositories>
    <dependencies>...</dependencies>
    <reporting>...</reporting>
    <dependencyManagement>...</dependencyManagement>
    <distributionManagement>...</distributionManagement>
</profile>
settings.xml中
<profile>
    <id>test</id>
    <activation>...</activation>
    <repositories>...</repositories>
    <pluginRepositories>...</pluginRepositories>
    <properties>…</properties>
</profile>
Profiles激活方式
  • 顯性激活
mvn -P dev package
  • 通過settings
<activeProfiles>
    <activeProfile>dev</activeProfile>
</activeProfiles>
  • 依賴于環(huán)境變量激活
<profile>
    <activation>
        <property>
            <name>debug</name>
        </property>
    </activation>
    ...
</profile>

如果系統(tǒng)屬性debug被定義并且有值芝发,這個 profile會被激活究恤。

  • 依賴于OS設(shè)置
<profile>
    <activation>
        <os>
            <family>Windows</family>
        </os>
    </activation>
    ...
</profile>

此配置在Windows系統(tǒng)中會被激活。

  • 存在或者缺失某個文件
<profile>
    <activation>
        <file>
            <missing>target/site</missing>
        </file>
    </activation>
</profile>

如果target/site文件缺失后德,此配置將會激活部宿。

屬性

屬性類型
  • 環(huán)境變量(Environment variables):帶有前綴env.的變量,將返回shell的環(huán)境變量值。如${env.PATH}將返回PATH變量理张。
  • pom變量:帶有前綴project.的變量赫蛇,將返回pom文件中元素的值。如${project.version}將返回pom文件中<version>標簽的值雾叭。
  • settings變量:帶有前綴settings.的變量悟耘,將返回settings文件中元素的值。如${settings.offline}將返回settings中<offline>標簽的值织狐。
  • Java屬性:在Java中任何可以通過System.getProperties()方法訪問的屬性暂幼。如${java.home}。
  • 正常屬性:在<properties>標簽中定于的屬性移迫。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旺嬉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厨埋,更是在濱河造成了極大的恐慌邪媳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荡陷,死亡現(xiàn)場離奇詭異雨效,居然都是意外死亡,警方通過查閱死者的電腦和手機废赞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門徽龟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唉地,你說我怎么就攤上這事顿肺。” “怎么了渣蜗?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵屠尊,是天一觀的道長。 經(jīng)常有香客問我耕拷,道長讼昆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任骚烧,我火速辦了婚禮浸赫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赃绊。我一直安慰自己既峡,他們只是感情好,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布碧查。 她就那樣靜靜地躺著运敢,像睡著了一般校仑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上传惠,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天迄沫,我揣著相機與錄音,去河邊找鬼卦方。 笑死羊瘩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的盼砍。 我是一名探鬼主播尘吗,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浇坐!你這毒婦竟也來了睬捶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤吗跋,失蹤者是張志新(化名)和其女友劉穎侧戴,沒想到半個月后宁昭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跌宛,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年积仗,在試婚紗的時候發(fā)現(xiàn)自己被綠了疆拘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡寂曹,死狀恐怖哎迄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隆圆,我是刑警寧澤漱挚,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站渺氧,受9級特大地震影響旨涝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侣背,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一白华、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贩耐,春花似錦弧腥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春抛蚤,著一層夾襖步出監(jiān)牢的瞬間台谢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工岁经, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朋沮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓缀壤,卻偏偏與公主長得像樊拓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子塘慕,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理筋夏,服務發(fā)現(xiàn),斷路器图呢,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 簡介 概述 Maven 是一個項目管理和整合工具 Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架 Maven...
    閩越布衣閱讀 4,288評論 6 39
  • 當前,JVM生態(tài)圈主要的三大構(gòu)建工具: Apache Ant(帶著Ivy) Maven Gradle 對于剛開始接...
    清楓_小天閱讀 5,793評論 1 13
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評論 6 342
  • 所有項目的構(gòu)建都是有生命周期的指蚜,這個生命周期包括:項目清理乞巧、初始化、編譯摊鸡、測試绽媒、打包、集成測試免猾、驗證是辕、部署、站點生...
    zlcook閱讀 2,769評論 0 21