最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven學(xué)習(xí)-初窺門徑

 更新時(shí)間:2017年10月19日 08:41:48   作者:黃小魚ZZZ  
這篇文章主要介紹了maven的簡(jiǎn)單知識(shí),介紹了maven的定義及核心功能,具有一定參考價(jià)值,大家可以了解下。

最近在一個(gè)公司實(shí)習(xí),由于剛出校門對(duì)公司開發(fā)流程還是不太清楚。對(duì)Maven知之甚少,最近我就在惡補(bǔ)Maven。

Maven定義

            Maven 是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model), 一組標(biāo)準(zhǔn)集合, 一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。 當(dāng)你使用 Maven 的時(shí)候,你用一個(gè)明確定義的項(xiàng)目對(duì)象模型來描述你的項(xiàng)目,然后 Maven 可以應(yīng)用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。Maven是基于項(xiàng)目對(duì)象模型(POM),可以通過一小段描述信息來管理項(xiàng)目的構(gòu)建、報(bào)告和文檔的軟件項(xiàng)目管理工具。

             在沒有自定義的情況下,源代碼假定是在 ${basedir}/src/main/java,資源文件假定是在${basedir}/src/main/resources 。測(cè)試代碼假定是在 ${basedir}/src/test 。項(xiàng)目假定會(huì)產(chǎn)生一個(gè) JAR 文件。 Maven 假定你想要把編譯好的字節(jié)碼放到${basedir}/target/classes 并且在 ${basedir}/target 創(chuàng)建一個(gè)可分發(fā)的 JAR文件。 雖然這看起來無關(guān)緊要,但是想想大部分基于 Ant 的構(gòu)建必須為每個(gè)子項(xiàng)目定義這些目錄。 Maven 對(duì)約定優(yōu)于配置的應(yīng)用不僅僅是簡(jiǎn)單的目錄位置, Maven 的核心插件使用了一組通用的約定,以用來編譯源代碼,打包可分發(fā)的構(gòu)件,生成 web 站點(diǎn),還有許多其他的過程。
Maven插件的全局性重用

         Maven 的核心,解析一些 XML 文檔,管理生命周期與插件。 Maven 被設(shè)計(jì)成將主要的職責(zé)委派給一組 Maven 插件,這些插件可以影響 Maven 生命周期,提供對(duì)目標(biāo)的訪問。絕大多數(shù) Maven 的動(dòng)作發(fā)生于 Maven 插件的目標(biāo),如編譯源碼,打包二進(jìn)制代碼,發(fā)布站點(diǎn)和其它構(gòu)建任務(wù)。從 Apache 下載的 Maven 不知道如何打包 WAR 文件,也不知道如何運(yùn)行單元測(cè)試, Maven 大部分的智能是由插件實(shí)現(xiàn)的,而插件從 Maven 倉(cāng)庫獲得。第一次你用全新的 Maven 安裝運(yùn)行諸如 mvn install 命令的時(shí)候,它會(huì)從中央 Maven 倉(cāng)庫下載大部分核心 Maven 插件。這不僅僅是一個(gè)最小化 Maven分發(fā)包大小的技巧,這種方式更能讓你升級(jí)插件以給你項(xiàng)目的構(gòu)建提高能力。 Maven從遠(yuǎn)程倉(cāng)庫獲取依賴和插件的這一事實(shí)允許了構(gòu)建邏輯的全局性重用。

依賴管理

          由于項(xiàng)目是根據(jù)一個(gè)包含組標(biāo)識(shí)符,構(gòu)件標(biāo)識(shí)符和版本的唯一的坐標(biāo)定義的。項(xiàng)目間可以使用這些坐標(biāo)來聲明依賴
遠(yuǎn)程倉(cāng)庫

          和項(xiàng)目依賴相關(guān)的,我們可以使用定義在項(xiàng)目對(duì)象模型( POM)中的坐標(biāo)來創(chuàng)建 Maven 構(gòu)件的倉(cāng)庫。

Ant 和 Maven 的區(qū)別

Apache Ant

        Ant 沒有正式的約定如一個(gè)一般項(xiàng)目的目錄結(jié)構(gòu), 你必須明確的告訴 Ant哪里去找源代碼,哪里放置輸出。隨著時(shí)間的推移,非正式的約定出現(xiàn)了,但是它們還沒有在產(chǎn)品中模式化。

         Ant 是程序化的,你必須明確的告訴 Ant 做什么,什么時(shí)候做。你必須告訴它去編譯,然后復(fù)制,然后壓縮。

         Ant 沒有生命周期,你必須定義目標(biāo)和目標(biāo)之間的依賴。你必須手工為每個(gè)目標(biāo)附上一個(gè)任務(wù)序列。

Apache Maven

         Maven 擁有約定,因?yàn)槟阕裱思s定,它已經(jīng)知道你的源代碼在哪里。它把字節(jié)碼放到 target/classes ,然后在 target 生成一個(gè) JAR文件。

       Maven 是聲明式的。你需要做的只是創(chuàng)建一個(gè) pom.xml 文件然后將源代碼放到默認(rèn)的目錄。 Maven 會(huì)幫你處理其它的事情。

        Maven 有一個(gè)生命周期,當(dāng)你運(yùn)行 mvn install 的時(shí)候被調(diào)用。這條命令告訴 Maven 執(zhí)行一系列的有序的步驟,直到到達(dá)你指定的生命周期。遍歷生命周期旅途中的一個(gè)影響就是, Maven 運(yùn)行了許多默認(rèn)的插件目標(biāo),這些目標(biāo)完成了像編譯和創(chuàng)建一個(gè) JAR 文件這樣的工作。

Maven 以插件的形式為一些一般的項(xiàng)目任務(wù)提供了內(nèi)置的智能。如果你想要編寫運(yùn)行單元測(cè)試,你需要做的只是編寫測(cè)試然后放到 ${basedir}/src/test/java ,添加一個(gè)對(duì)于 TestNG 或者 JUnit 的測(cè)試范圍依賴,然后運(yùn)行 mvn test 。如果你想要部署一個(gè) web 應(yīng)用而非 JAR ,你需要做的是改變你的項(xiàng)目類型為 war ,然后把你文檔根目錄置為 ${basedir}/src/main/webapp 。當(dāng)然,你可以用 Ant 做這些事情,但是你將需要從零開始寫這些指令。使用 Ant ,你首先需要確定 JUnit JAR 文件應(yīng)該放在哪里,然后你需要?jiǎng)?chuàng)建一個(gè)包含這個(gè) JUnit JAR 文件的 classpath ,然后告訴 Ant 它應(yīng)該從哪里去找測(cè)試源代碼,編寫一個(gè)目標(biāo)來編譯測(cè)試源代碼為字節(jié)碼,使用 JUnit 來執(zhí)行單元測(cè)試

簡(jiǎn)單使用語句

          mvn   -v    查看版本
                    compile  編譯
                    test   測(cè)試
                    package   打包
                    clean   清楚target
                    install  安裝jar包到本地倉(cāng)庫中

自動(dòng)創(chuàng)建目錄骨架

archetype插件用于創(chuàng)建符合maven規(guī)定的目錄骨架創(chuàng)建目錄有兩種方式

      方式一:archetype:generate 按照提示進(jìn)行選擇
      方式二:archetype:generate -DgroupId=組織名,公司網(wǎng)址的反寫+項(xiàng)目名
                                                           -DartifactId=項(xiàng)目名-模塊名
                                   -Dversion=版本號(hào)
                                   -Dpackage=代碼所存在的包名

其他知識(shí)點(diǎn) 

     坐標(biāo)
           構(gòu)件
      倉(cāng)庫   分為本地倉(cāng)庫和遠(yuǎn)程倉(cāng)庫
      鏡像倉(cāng)庫  
      clean 清理項(xiàng)目
      pre-clean 執(zhí)行清理前的工作
      clean清理上一次構(gòu)建生成的所有文件
      post-clean執(zhí)行清理后的文件
      site生成項(xiàng)目站點(diǎn)
             pre-site 在生成項(xiàng)目站點(diǎn)前要完成的工作
     site 生成項(xiàng)目的站點(diǎn)文檔
     post-site在生成項(xiàng)目站點(diǎn)后要完成的工作
     site-deploy發(fā)布生成的站點(diǎn)到服務(wù)器上
      依賴范圍
      依賴沖突
      依賴傳遞
      聚合和繼承,其他知識(shí)點(diǎn)以后在詳細(xì)介紹。。

總結(jié)

以上就是本文關(guān)于maven學(xué)習(xí)-初窺門徑的全部?jī)?nèi)容,對(duì)maven作了簡(jiǎn)要介紹,有什么不對(duì)的地方歡迎留言指出,小編也可以學(xué)習(xí)學(xué)習(xí)。感興趣的朋友可以繼續(xù)參閱本站:使用maven運(yùn)行Java Main的三種方法解析、Java利用future及時(shí)獲取多線程運(yùn)行結(jié)果等,感謝閱讀。希望對(duì)大家有所幫助。

相關(guān)文章

  • Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例

    Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例

    本篇文章主要介紹了Spring Boot與RabbitMQ結(jié)合實(shí)現(xiàn)延遲隊(duì)列的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • J2EE中的struts2表單細(xì)節(jié)處理

    J2EE中的struts2表單細(xì)節(jié)處理

    這篇文章主要介紹了J2EE中的struts2表單細(xì)節(jié)處理的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot如何使用注解進(jìn)行XSS防御

    SpringBoot如何使用注解進(jìn)行XSS防御

    在SpringBoot中,可以通過自定義@XSS注解和實(shí)現(xiàn)XSSValidator類來防御XSS攻擊,此方法適用于GET和POST請(qǐng)求,通過在方法參數(shù)或?qū)嶓w類屬性上添加@XSS注解,并結(jié)合@Valid或@Validated注解使用,有效攔截潛在的XSS腳本,保障應(yīng)用安全
    2024-11-11
  • Java利用DelayQueue實(shí)現(xiàn)延遲任務(wù)代碼實(shí)例

    Java利用DelayQueue實(shí)現(xiàn)延遲任務(wù)代碼實(shí)例

    這篇文章主要介紹了Java利用DelayQueue實(shí)現(xiàn)延遲任務(wù)代碼實(shí)例,DelayQueue?是一個(gè)支持延時(shí)獲取元素的阻塞隊(duì)列,?內(nèi)部采用優(yōu)先隊(duì)列?PriorityQueue?存儲(chǔ)元素,同時(shí)元素必須實(shí)現(xiàn)?Delayed?接口,需要的朋友可以參考下
    2023-12-12
  • SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例

    SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例

    這篇文章主要介紹了SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作

    SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作

    這篇文章主要介紹了SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java Class文件內(nèi)部結(jié)構(gòu)解析過程詳解

    java Class文件內(nèi)部結(jié)構(gòu)解析過程詳解

    java class的文件結(jié)構(gòu),java class文件結(jié)構(gòu)是基于字節(jié)流的,用unicode進(jìn)行編碼,下面說說java Class文件內(nèi)部結(jié)構(gòu)分析
    2013-11-11
  • MyBatis-Plus?分頁不生效的解決方法

    MyBatis-Plus?分頁不生效的解決方法

    本文主要介紹了MyBatis-Plus?分頁不生效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java?String相加底層原理分析

    Java?String相加底層原理分析

    這篇文章主要介紹了Java?String相加底層原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能全過程

    Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能全過程

    在Java開發(fā)過程中實(shí)現(xiàn)用戶的注冊(cè)功能是最基本的,這篇文章主要給大家介紹了關(guān)于Java?Web應(yīng)用小案例之實(shí)現(xiàn)用戶登錄功能的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01

最新評(píng)論

元朗区| 鄱阳县| 鄂托克前旗| 日土县| 迁西县| 永兴县| 江西省| 尼勒克县| 图片| 衢州市| 大连市| 荣成市| 汪清县| 德保县| 延边| 乌拉特中旗| 金昌市| 乌拉特中旗| 西平县| 巴里| 慈利县| 北辰区| 渭源县| 阿鲁科尔沁旗| 万州区| 南昌市| 家居| 乌鲁木齐县| 乌兰察布市| 堆龙德庆县| 浦江县| 江城| 乐亭县| 遂宁市| 陈巴尔虎旗| 绩溪县| 岳普湖县| 连州市| 和平县| 仁布县| 金坛市|