欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

Maven定義

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

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

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

依賴管理

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

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

Ant 和 Maven 的區(qū)別

Apache Ant

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

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

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

Apache Maven

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

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

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

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

簡單使用語句

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

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

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

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

其他知識點(diǎn) 

     坐標(biāo)
           構(gòu)件
      倉庫   分為本地倉庫和遠(yuǎn)程倉庫
      鏡像倉庫  
      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ù)器上
      依賴范圍
      依賴沖突
      依賴傳遞
      聚合和繼承,其他知識點(diǎn)以后在詳細(xì)介紹。。

總結(jié)

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

相關(guān)文章

  • spring.datasource.schema配置詳解

    spring.datasource.schema配置詳解

    本文主要介紹了spring.datasource.schema配置,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • SpringBoot配置及使用Schedule過程解析

    SpringBoot配置及使用Schedule過程解析

    這篇文章主要介紹了SpringBoot配置及使用Schedule過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java內(nèi)存劃分:運(yùn)行時數(shù)據(jù)區(qū)域

    Java內(nèi)存劃分:運(yùn)行時數(shù)據(jù)區(qū)域

    聽說Java運(yùn)行時環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Java中如何快速構(gòu)建項(xiàng)目腳手架的實(shí)現(xiàn)

    Java中如何快速構(gòu)建項(xiàng)目腳手架的實(shí)現(xiàn)

    這篇文章主要介紹了Java中如何快速構(gòu)建項(xiàng)目腳手架,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • SpringBoot+阿里云OSS實(shí)現(xiàn)在線視頻播放的示例

    SpringBoot+阿里云OSS實(shí)現(xiàn)在線視頻播放的示例

    這篇文章主要介紹了SpringBoot+阿里云OSS實(shí)現(xiàn)在線視頻播放的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • springboot與mybatis整合實(shí)例詳解(完美融合)

    springboot與mybatis整合實(shí)例詳解(完美融合)

    大家都知道springboot搭建一個spring框架只需要秒秒鐘。下面通過實(shí)例代碼給大家介紹一下springboot與mybatis的完美融合,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • java利用Tabula實(shí)現(xiàn)對PDF內(nèi)表格數(shù)據(jù)提取

    java利用Tabula實(shí)現(xiàn)對PDF內(nèi)表格數(shù)據(jù)提取

    Tabula是一個開源工具,用于從PDF文檔中提取表格數(shù)據(jù),下面小編就來和大家詳細(xì)介紹一下java如何通過Tabula對PDF文件內(nèi)表格進(jìn)行數(shù)據(jù)提取吧
    2023-09-09
  • 詳解Java如何應(yīng)對常見的安全威脅和攻擊類型

    詳解Java如何應(yīng)對常見的安全威脅和攻擊類型

    隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)安全問題日益突出,本文將以Java開發(fā)語言為例,深入探討網(wǎng)絡(luò)協(xié)議的安全性問題,通過分析常見的安全威脅和攻擊類型,設(shè)計和實(shí)施安全協(xié)議等主題,為讀者提供一些有益的思路和方法,需要的朋友可以參考下
    2023-11-11
  • Java線程隊(duì)列LinkedBlockingQueue的使用

    Java線程隊(duì)列LinkedBlockingQueue的使用

    本文主要介紹了Java線程隊(duì)列LinkedBlockingQueue的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 如何定位java程序中占用cpu最高的線程堆棧信息

    如何定位java程序中占用cpu最高的線程堆棧信息

    這篇文章主要介紹了如何定位java程序中占用cpu最高的線程堆棧信息方法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評論