pom.xml

概述

pom 是 project model object

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
</project>

project 標(biāo)簽里可以寫的標(biāo)簽

項(xiàng)目描述

<!-- 項(xiàng)目組 -->
<groupId>com.baidu.lego</groupId>
<!-- 項(xiàng)目名 -->
<artifactId>admin-service</artifactId>
<!-- 項(xiàng)目版本 -->
<version>1.2.2</version>
<!-- 項(xiàng)目類型,可選 jar,war,pom汹碱。默認(rèn)是 jar -->
<packaging>jar</packaging>

版本管理

<dependencyManagement>
    <dependencies>
        <!--spring boot 2.2.2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--spring cloud Hoxton.SR1-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

1:子模塊會(huì)自動(dòng)引入父模塊的dependencies依賴粘衬,而不會(huì)自動(dòng)引入dependencyManagement的依賴

2:dependencyManagement里只是聲明依賴,并不實(shí)現(xiàn)引入咳促,因此子項(xiàng)目需要顯式的聲明需要用的依賴稚新,而且不需要指定version、scope跪腹,系統(tǒng)會(huì)自動(dòng)用父模塊的version褂删、scope

項(xiàng)目所需依賴

<dependencies>
    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session</artifactId>
        <version>1.3.5.RELEASE</version>
    </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
    </dependency>
</dependencies>

生命周期

scope

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
</dependency>
scope 編譯階段 測(cè)試階段 運(yùn)行階段 發(fā)布階段 備注
compile yes yes yes yes 默認(rèn)scope
provided yes yes yes -
system yes yes yes - @Deprecated;類似provided冲茸; 需指定systemPath屬性屯阀,從本地倉庫下載依賴;
runtime - yes yes yes
test - test - - 舉例:junit
import ~ ~ ~ ~ 只用于 dependencyManagement中type=pom的dependency 舉例:spring-cloud-dependencies

作用域

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 防止將devtools依賴傳遞到其他模塊中 -->
</dependency>

Project A 是 Project B 的 parent

Project A 使用<optional>true</optional>轴术,Project B 里不會(huì)傳進(jìn)這個(gè) dependency

自定義變量

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>12</maven.compiler.source>
</properties>

然后可以在別的地方這么使用:${maven.compiler.source}

Maven 生命周期指令

  1. clean难衰,清理,在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作逗栽,移除所有上一次構(gòu)建生成的文件盖袭。執(zhí)行該命令會(huì)刪除項(xiàng)目路徑下的target文件,但是不會(huì)刪除本地的maven倉庫已經(jīng)生成的jar文件彼宠。
  2. validate鳄虱,驗(yàn)證,驗(yàn)證工程是否正確凭峡,所需的信息是否完整拙已。
  3. compile,編譯源碼摧冀,編譯生成class文件,編譯命令悠栓,只編譯選定的目標(biāo),不管之前是否已經(jīng)編譯過按价,會(huì)在你的項(xiàng)目路徑下生成一個(gè)target目錄,在該目錄中包含一個(gè)classes文件夾笙瑟,里面全是生成的class文件及字節(jié)碼文件楼镐。
  4. test,單元測(cè)試往枷,測(cè)試框产。
  5. package凄杯,打包,將工程文件打包為指定的格式秉宿,例如JAR戒突,WAR等。這個(gè)命令會(huì)在你的項(xiàng)目路徑下一個(gè)target目錄描睦,并且擁有compile命令的功能進(jìn)行編譯膊存,同時(shí)會(huì)在target目錄下生成項(xiàng)目的jar/war文件。如果a項(xiàng)目依賴于b項(xiàng)目忱叭,打包b項(xiàng)目時(shí)隔崎,只會(huì)打包到b項(xiàng)目下target下,編譯a項(xiàng)目時(shí)就會(huì)報(bào)錯(cuò)韵丑,因?yàn)檎也坏剿蕾嚨腷項(xiàng)目爵卒,說明a項(xiàng)目在本地倉庫是沒有找到它所依賴的b項(xiàng)目,這時(shí)就用到install命令了
  6. verify撵彻,核實(shí)钓株,檢查package是否有效、符合標(biāo)準(zhǔn)陌僵。
  7. install轴合,安裝至本地倉庫,將包安裝至本地倉庫拾弃,以讓其它項(xiàng)目依賴值桩。該命令包含了package命令功能,不但會(huì)在項(xiàng)目路徑下生成class文件和jar包豪椿,同時(shí)會(huì)在你的本地maven倉庫生成jar文件奔坟,供其他項(xiàng)目使用(如果沒有設(shè)置過maven本地倉庫,一般在用戶/.m2目錄下搭盾。如果a項(xiàng)目依賴于b項(xiàng)目咳秉,那么install b項(xiàng)目時(shí),會(huì)在本地倉庫同時(shí)生成pom文件和jar文件鸯隅,解決了上面打包package出錯(cuò)的問題)
  8. site澜建,站點(diǎn),生成項(xiàng)目的站點(diǎn)文檔
  9. deploy蝌以,復(fù)制到遠(yuǎn)程倉庫
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炕舵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子跟畅,更是在濱河造成了極大的恐慌咽筋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徊件,死亡現(xiàn)場(chǎng)離奇詭異奸攻,居然都是意外死亡蒜危,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門睹耐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辐赞,“玉大人,你說我怎么就攤上這事硝训∠煳” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵捎迫,是天一觀的道長(zhǎng)晃酒。 經(jīng)常有香客問我,道長(zhǎng)窄绒,這世上最難降的妖魔是什么贝次? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮彰导,結(jié)果婚禮上蛔翅,老公的妹妹穿的比我還像新娘。我一直安慰自己位谋,他們只是感情好山析,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掏父,像睡著了一般笋轨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赊淑,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天爵政,我揣著相機(jī)與錄音,去河邊找鬼陶缺。 笑死钾挟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饱岸。 我是一名探鬼主播掺出,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼苫费!你這毒婦竟也來了汤锨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤百框,失蹤者是張志新(化名)和其女友劉穎泥畅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡位仁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了方椎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聂抢。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖棠众,靈堂內(nèi)的尸體忽然破棺而出琳疏,到底是詐尸還是另有隱情,我是刑警寧澤闸拿,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布空盼,位于F島的核電站,受9級(jí)特大地震影響新荤,放射性物質(zhì)發(fā)生泄漏揽趾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一苛骨、第九天 我趴在偏房一處隱蔽的房頂上張望篱瞎。 院中可真熱鬧,春花似錦痒芝、人聲如沸俐筋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澄者。三九已至,卻和暖如春请琳,著一層夾襖步出監(jiān)牢的瞬間粱挡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工单起, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抱怔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓嘀倒,卻偏偏與公主長(zhǎng)得像屈留,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子测蘑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • POM 代表“Project Object Model”灌危。它是 Maven 項(xiàng)目的 XML 表示形式,保存在名為 ...
    rosy_dawn閱讀 1,884評(píng)論 0 1
  • 一碳胳、概述 ??當(dāng)我們使用Maven來管理和構(gòu)建我們的項(xiàng)目的時(shí)候勇蝙,我們會(huì)不可避免的遇到pom文件。雖然已經(jīng)配置過po...
    騎著烏龜去看海閱讀 7,554評(píng)論 1 15
  • Maven 教程Maven 是一個(gè)項(xiàng)目管理工具挨约,可以對(duì) Java 項(xiàng)目進(jìn)行構(gòu)建味混、依賴管理产雹。 1. maven中的坐...
    loserwang_3030閱讀 234評(píng)論 0 0
  • maven構(gòu)建的生命周期 maven是圍繞著構(gòu)建生命周期這個(gè)核心概念為基礎(chǔ)的。maven里有3個(gè)內(nèi)嵌的構(gòu)建生命周期...
    牛初九閱讀 363評(píng)論 0 0
  • 使用IDEA創(chuàng)建spark項(xiàng)目翁锡,會(huì)用到 pom.xml的配置蔓挖,現(xiàn)簡(jiǎn)單做個(gè)記錄。 1. 固定部分 當(dāng)我們創(chuàng)建好項(xiàng)目時(shí)...
    _訴說閱讀 1,924評(píng)論 0 0