Maven3.6使用說(shuō)明

運(yùn)行環(huán)境

  • Maven:3.6.0
  • Eclipse:4.10.0
  • jdk版本:1.8
  • 操作系統(tǒng):windows10

概念

Maven采用POM(project object model)配置項(xiàng)目

安裝

  • Maven依賴于jdk
  • 安裝包解壓縮即可
  • bin目錄添加到PATH環(huán)境變量中
  • 命令行執(zhí)行mvn -v驗(yàn)證安裝成功

創(chuàng)建(create)項(xiàng)目

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

  • archetype為插件快集,用來(lái)根據(jù)模板生成項(xiàng)目的目錄結(jié)構(gòu)
  • groupId對(duì)應(yīng)源代碼包名
  • artifactId對(duì)應(yīng)項(xiàng)目根目錄文件名
  • archetypeArtifactId對(duì)應(yīng)采用的目錄模板

構(gòu)建(build)項(xiàng)目

構(gòu)建

mvn package

  • package是一個(gè)階段火的,Maven會(huì)執(zhí)行從第一個(gè)階段直到指定階段的全部過(guò)程。
  • 階段屬于生命周期,Maven的生命周期包括clean、default和site。
  • default除了package階段,還包括compile、install叭爱、deploy等。install安裝到本地倉(cāng)庫(kù)漱病,deploy發(fā)布到遠(yuǎn)端倉(cāng)庫(kù)买雾。

執(zhí)行package后,Maven會(huì)將生成的jar包放到默認(rèn)的target目錄下杨帽。由于本機(jī)沒(méi)有配置JAVA_HOME環(huán)境變量漓穿,出現(xiàn)了"no compiler is provided"的錯(cuò)誤,添加配置后構(gòu)建成功注盈。

運(yùn)行測(cè)試

java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
由于本機(jī)沒(méi)有配置classpath環(huán)境變量晃危,出現(xiàn)了"找不到或無(wú)法加載主類"的錯(cuò)誤,添加配置后運(yùn)行成功。

添加依賴包

在pom.xml的dependencies元素下新增dependency子元素

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope><!--scope默認(rèn)為compile-->
    </dependency>
</dependencies>

如何指定版本號(hào)范圍:方括號(hào)表示閉區(qū)間僚饭,圓括號(hào)表示開(kāi)區(qū)間

  • [1.0, 2.0]表示1.0<=version<=1.2
  • (, 1.5]表示version<=1.5

在不確定依賴包的groupId和artifactId時(shí)可以先去repository提供的web頁(yè)面查詢震叮,比如說(shuō)可以用mvn repository

添加資源

默認(rèn)放在${basedir}/src/main/resources目錄,資源會(huì)被一同打包到j(luò)ar文件

如何改造已有項(xiàng)目為Maven項(xiàng)目

  • 創(chuàng)建pom.xml鳍鸵,修改對(duì)應(yīng)信息
  • 如果源代碼所在目錄不符合Maven默認(rèn)的目錄結(jié)構(gòu)苇瓣,可以增加或修改如下配置
<build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
</build>
  • 如果資源所在目錄不符合Maven默認(rèn)的目錄結(jié)構(gòu),可以增加或修改如下配置
<build>
    <resources>
        <resource>
            <targetPath>META-INF</targetPath>
            <directory>${basedir}/src</directory>
            <includes>
                <include></include>
            </includes>
            <excludes>
                <exclude></exclude>
            </exculdes>
        </resource>
    </resources>
</build>

ide集成

eclipse插件m2eclipse
在eclipse的4.4以上的版本內(nèi)置了對(duì)maven的支持偿乖,所以可以不用自己安裝插件击罪。默認(rèn)的插件使用內(nèi)置的Maven,如果想要改成使用自己安裝的Maven贪薪,可以通過(guò)修改Window->Preference->Maven中的以下配置

  • Installations添加Maven運(yùn)行時(shí)
  • User Settings修改配置文件
  • Archetypes修改目錄結(jié)構(gòu)模板的源媳禁,如果默認(rèn)的源速度太慢的話可以考慮修改,甚至可以將archetype-catalog.xml文件存儲(chǔ)在本地

配置修改完成后画切,在新建項(xiàng)目的時(shí)候選擇Maven Project即可竣稽。如果項(xiàng)目已經(jīng)存在,可以右鍵項(xiàng)目Configure->Convert to Maven Project將其轉(zhuǎn)換成Maven項(xiàng)目槽唾。如果編譯時(shí)出現(xiàn)以下錯(cuò)誤信息:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
檢查Window->Preference->Java->Installed JREs是否是jdk下的jre丧枪。

依賴包源碼

  • eclipse環(huán)境下光涂,可以右鍵jar包庞萍,選擇Maven->Download Sources,此時(shí)源碼會(huì)直接關(guān)聯(lián)到j(luò)ar包
  • cmd環(huán)境下忘闻,切換到項(xiàng)目根目錄后執(zhí)行mvn dependency:sources

與Ant的區(qū)別

  • Maven內(nèi)置了更多的隱式規(guī)則钝计,內(nèi)置了軟件構(gòu)建的生命周期
    以上兩點(diǎn)使得Maven知道如何在默認(rèn)情況下完成任務(wù),只要你告訴它做什么齐佳;而Ant需要你告訴它怎么做
  • Maven有依賴管理和倉(cāng)庫(kù)管理私恬,Ant沒(méi)有
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市炼吴,隨后出現(xiàn)的幾起案子本鸣,更是在濱河造成了極大的恐慌,老刑警劉巖硅蹦,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣德,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡童芹,警方通過(guò)查閱死者的電腦和手機(jī)涮瞻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)假褪,“玉大人署咽,你說(shuō)我怎么就攤上這事∩簦” “怎么了宁否?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵窒升,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我慕匠,道長(zhǎng)异剥,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任絮重,我火速辦了婚禮冤寿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘青伤。我一直安慰自己督怜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布狠角。 她就那樣靜靜地躺著号杠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丰歌。 梳的紋絲不亂的頭發(fā)上姨蟋,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音立帖,去河邊找鬼眼溶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晓勇,可吹牛的內(nèi)容都是我干的堂飞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绑咱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绰筛!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起描融,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铝噩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后窿克,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骏庸,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年让歼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敞恋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谋右,死狀恐怖硬猫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤啸蜜,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布坑雅,位于F島的核電站,受9級(jí)特大地震影響衬横,放射性物質(zhì)發(fā)生泄漏裹粤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一蜂林、第九天 我趴在偏房一處隱蔽的房頂上張望遥诉。 院中可真熱鬧,春花似錦噪叙、人聲如沸矮锈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苞笨。三九已至,卻和暖如春子眶,著一層夾襖步出監(jiān)牢的瞬間瀑凝,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工臭杰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粤咪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓硅卢,卻偏偏與公主長(zhǎng)得像射窒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子将塑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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