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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven基础及概念

發(fā)布時(shí)間:2025/3/11 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven基础及概念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

今天就來聊聊Maven的基礎(chǔ)和一些比較概念性的東西,還有一些常用的Maven命令啥的,主要是某人腦子記不住,記在博客中讓她自己看吧,省的費(fèi)心給她找。

后續(xù)的文章會(huì)聊到Maven的一些比較高級(jí)用法,像自定義插件,私服啥的,歡迎各位大佬來討論哦!

概念

Maven 是一個(gè)項(xiàng)目管理和整合工具。Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架。開發(fā)團(tuán)隊(duì)幾乎不用花多少時(shí)間就能夠自動(dòng)完成工程的基礎(chǔ)構(gòu)建配置,因?yàn)?/span> Maven 使用了一個(gè)標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和一個(gè)默認(rèn)的構(gòu)建生命周期。

在有多個(gè)開發(fā)團(tuán)隊(duì)環(huán)境的情況下,Maven 能夠在很短的時(shí)間內(nèi)使得每項(xiàng)工作都按照標(biāo)準(zhǔn)進(jìn)行。因?yàn)榇蟛糠值墓こ膛渲貌僮鞫挤浅:?jiǎn)單并且可復(fù)用,在創(chuàng)建報(bào)告、檢查、構(gòu)建和測(cè)試自動(dòng)配置時(shí),Maven 可以讓開發(fā)者的工作變得更簡(jiǎn)單。

Maven 的主要目的是為開發(fā)者提供

  • 一個(gè)可復(fù)用、可維護(hù)、更易理解的工程綜合模型
  • 與這個(gè)模型交互的插件或者工具
  • Maven 工程結(jié)構(gòu)和內(nèi)容被定義在一個(gè) xml 文件中(即談到的pom.xml)

    安裝配置

    Maven 是一個(gè)基于 Java 的工具,所以要做的第一件事情就是安裝 JDK。

    官網(wǎng)下載后解壓即可,一般都是在開發(fā)工具里面配置Maven的位置就可以了,如果喜歡敲命令的話,那就添加一下環(huán)境變量。

    然后配置一下本地倉庫地址和鏡像倉庫,提供一下示例:

    maven下載地址:Maven – Download Apache Maven?

    JDK原生打包

    在Maven工具出現(xiàn)之前,基本上用的都是Ant(打包構(gòu)建項(xiàng)目工具)打包,由于現(xiàn)在Maven越來越流行,使用Ant打包的項(xiàng)目就越來越少了,這些工具基本上都是通過對(duì)JDK原生打包的方式進(jìn)行了一層封裝,編譯打包底層還是基于JDK帶有的工具實(shí)現(xiàn)的。

    現(xiàn)有一個(gè)demo測(cè)試項(xiàng)目,結(jié)構(gòu)路徑如下:

    ?我們進(jìn)入到這個(gè)src的目錄里面,使用命令進(jìn)行編譯:

    ?編譯好后就可以進(jìn)行打包成jar包文件了,jar文件又分為兩種,一種是直接被引用的jar包,另外一種是可以直接執(zhí)行的可執(zhí)行jar包,打包命令如下:

    ?這時(shí)打的包僅是一個(gè)普通的jar包,如果要打成可執(zhí)行包的話,那么就得引用一個(gè)MANIFEST.MF文件了,JDK也是根據(jù)這個(gè)文件加載相關(guān)的類信息的,新建一個(gè)manifest.txt文件,內(nèi)容如下(每個(gè)冒號(hào)后面都需要有空格,每行都需換行)

    Manifest-Version: 1.0
    Created-By: 1.8.0_101 (Oracle Corporation)
    Main-Class: com.compile.App

    執(zhí)行一下命令

    這樣打出來的jar包就是可執(zhí)行包啦。使用以下命令啟動(dòng)jar包

    ?java -jar compile.jar

    使用Maven打包

    我們需要?jiǎng)?chuàng)建一個(gè)Maven Project項(xiàng)目,我們這里使用quickstart原型(快速創(chuàng)建)

    創(chuàng)建好后再pom.xml里面的build標(biāo)簽里面添加Maven打包插件,如果不需要可執(zhí)行jar包的話,把configuration標(biāo)簽去掉就好了

    ?POM結(jié)構(gòu)

    先放在這里,起碼有個(gè)概念,會(huì)在后面的博文中講到

    ?Maven項(xiàng)目結(jié)構(gòu)

    項(xiàng)目結(jié)構(gòu)是一個(gè)約定好了的目錄,如果有些改動(dòng)的話,可能項(xiàng)目都不能正常運(yùn)行或打包(博主碰到過一次,賊難受)

    約定的目錄(不可改):

    src/main/java –存放項(xiàng)目的.java文件

    src/main/resources –存放項(xiàng)目資源文件。比方Spring,Mybatis配置文件

    src/test/java –存放全部測(cè)試.java文件,比方JUnit測(cè)試類

    src/test/resources ---測(cè)試資源文件

    target ---項(xiàng)目輸出位置,編譯完畢后的東西放到這里面

    pom.xml

    Maven生命周期

    在?Maven的的生命周期里面,理想的標(biāo)準(zhǔn)構(gòu)建流程為:清理->編譯 -> 測(cè)試 ->?報(bào)告 ->?打包 ->?部署。并且在一個(gè)pom.xml里面全部搞定

    而Maven只是一個(gè)抽象規(guī)范流程,每個(gè)周期里面的流程是有具體的插件來執(zhí)行的

    ?而每個(gè)生命周期的預(yù)設(shè)如下:

    階段處理描述
    驗(yàn)證 validate驗(yàn)證項(xiàng)目驗(yàn)證項(xiàng)目是否正確且所有必須信息是可用的
    編譯 compile執(zhí)行編譯源代碼編譯在此階段完成
    測(cè)試 Test測(cè)試使用適當(dāng)?shù)膯卧獪y(cè)試框架(例如JUnit)運(yùn)行測(cè)試。
    包裝 package打包創(chuàng)建JAR/WAR包如在 pom.xml 中定義提及的包
    檢查 verify檢查對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,以保證質(zhì)量達(dá)標(biāo)
    安裝 install安裝安裝打包的項(xiàng)目到本地倉庫,以供其他項(xiàng)目使用
    部署 deploy部署拷貝最終的工程包到遠(yuǎn)程倉庫中,以共享給其他開發(fā)人員和工程

    運(yùn)行任何一個(gè)階段,都會(huì)從其所在生命周期的第一個(gè)階段開始,順序執(zhí)行到指定的階段,如:

    mvn package? --- 本義:執(zhí)行default周期的package階段,maven會(huì)自動(dòng)從process-resources階段開始運(yùn)行到package階段結(jié)束

    Maven插件

    插件plugin是綁定到生命周期,承擔(dān)實(shí)際功能的組件。mvn運(yùn)行時(shí),自動(dòng)關(guān)聯(lián)插件來運(yùn)行

    下圖是maven默認(rèn)的各階段對(duì)應(yīng)的插件列表:

    生命周期

    生命周期階段

    插件目標(biāo)

    執(zhí)行任務(wù)

    clean

    pre-clean

    clean

    maven-clean-plugin:clean

    刪除項(xiàng)目的輸出目錄。

    post-clean

    site

    pre-site

    site

    maven-site-plugin:site

    post-site

    site-deploy

    maven-site-plugin:deploy

    default

    process-resources

    maven-resources-plugin:resources

    復(fù)制主資源文件至主輸出目錄

    compile

    maven-compiler-plugin:compile

    編譯主代碼至主輸出目錄

    process-test-resources

    maven-resources-plugin:testResources

    復(fù)制測(cè)試資源文件至測(cè)試輸出目

    test-compile

    maven-compiler-plugin:testCompile

    編譯測(cè)試代碼至測(cè)試輸出目錄

    test

    maven-surefire-plugin:test

    執(zhí)行測(cè)試用例

    package

    maven-jar-plugin:jarejb:ejb jar:jar rar:rar war:war

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

    install

    maven-install-plugin:install

    將項(xiàng)目輸出構(gòu)件安裝到本地倉庫

    deploy

    maven-deploy-plugin:deploy

    將項(xiàng)目輸出構(gòu)件部署到遠(yuǎn)程倉庫

    Maven常用命令

    mvn clean? 執(zhí)行清理階段生命周期

    mvn compile 執(zhí)行編譯階段生命周期

    mvn package 執(zhí)行打包階段生命周期

    mvn install 安裝jar到本地庫

    mvn dependency:tree?將當(dāng)前項(xiàng)目pom.xml中引入的依賴打印出來

    總結(jié)

    以上是生活随笔為你收集整理的Maven基础及概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 中文字幕亚洲精品在线 | 中文字幕一区二区三区四区免费看 | 国产成人精品一区二区三区网站观看 | 一区二区三区激情 | 秋霞在线观看秋 | 国产一区二区黄 | 日本少妇激情视频 | 双性娇喘浑圆奶水h男男漫画 | 国产麻豆乱码精品一区二区三区 | 性欧美熟妇videofreesex | 中文字幕av一区二区三区 | 午夜欧美日韩 | 国产成人亚洲一区二区 | 亚洲国内在线 | 四虎影院在线观看免费 | 欧美成人黑人猛交 | 日本高清免费不卡视频 | 久久亚洲av午夜福利精品一区 | 天天干天天爽天天射 | 自拍偷拍第二页 | 国产精品一级片 | 亚洲欧美一二三区 | 免费婷婷 | 成人一区二区三区在线观看 | 中文字幕亚洲区 | 在线免费观看黄网站 | 一级做a免费视频 | 福利在线一区 | 亚洲九九 | 精品国产96亚洲一区二区三区 | 午夜狠狠干 | 成人在线视频免费看 | 亚洲麻豆一区二区三区 | 开心激情综合网 | se婷婷 | 在线高清观看免费观看 | avtt2015| 欧美成人777 | 免费性网站 | 亚洲视频一区二区在线观看 | 国产美女视频 | 日韩aaa| 国产v亚洲v天堂无码久久久 | 性涩av| 三度诱惑免费版电影在线观看 | 欧美影视一区二区 | 久久911 | 日韩午夜免费视频 | 手机在线亚洲 | 97一区二区三区 | 在线99| av免费网站在线观看 | 农村老熟妇乱子伦视频 | 极品国产91在线网站 | 国产做爰高潮呻吟视频 | 亚洲一区二区三区加勒比 | 国产后入清纯学生妹 | 日韩免费视频观看 | 美腿丝袜亚洲色图 | 亚洲少妇xxx | 国产乱子伦视频一区二区三区 | 在线观看va | 日本成人a | 亚洲av无码一区二区三区人 | 国产精品卡一 | 69堂免费视频 | 亚洲射图 | 亚洲国产aⅴ精品一区二区的游戏 | 成人毛片18女人毛片 | 日本少妇高潮 | www色网站 | caopor在线视频| 在线看黄色网 | 午夜网址 | 人人澡超碰碰 | 久久精品国产露脸对白 | 久久久久久999| 亚洲91色 | 亚洲粉嫩| 久久永久视频 | 国产精品v日韩精品v在线观看 | 黄色av影院 | 不许穿内裤随时挨c调教h苏绵 | 国产激情影院 | 国产无套内射普通话对白 | 97干视频| 欧美黄色片 | 香蕉影院在线 | 黄色午夜| 欧美日韩人妻精品一区二区 | 欧美激情自拍偷拍 | 亚洲精品成a人在线观看 | 日韩成人看片 | 亚洲特级黄色片 | 九九热这里都是精品 | 狠狠一区二区 | 国产乱码精品一区二三区蜜臂 | 婷婷综合av | 免费成人高清 |