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

maven學習-初窺門徑

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

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

Maven定義

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

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

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

依賴管理

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

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

Ant 和 Maven 的區(qū)別

Apache Ant

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

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

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

Apache Maven

         Maven 擁有約定,因為你遵循了約定,它已經(jīng)知道你的源代碼在哪里。它把字節(jié)碼放到 target/classes ,然后在 target 生成一個 JAR文件。

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

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

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

簡單使用語句

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

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

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

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

其他知識點 

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

總結(jié)

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

相關(guān)文章

  • spring.datasource.schema配置詳解

    spring.datasource.schema配置詳解

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

    SpringBoot配置及使用Schedule過程解析

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java線程隊列LinkedBlockingQueue的使用

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

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

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

最新評論