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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven简述以及配置使用

發布時間:2024/7/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven简述以及配置使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 目前的技術存在的問題(引入Maven的重要性)

  • 一個項目就是一個工程;

    • 如果項目非常龐大,就不再適合使用package來劃分模塊;最好是每一個模塊對應一個工程,利于分工協作;

    • 借助于Maven可以將一個項目拆分成多個工程;

  • 項目中的jar包需要導入到WEB-INNF/lib目錄下;

    • 帶來的問題:同樣的jar重復的出現在不同的項目中,一方面浪費存儲空間,工程也會臃腫;

    • 借助Maven,可以將jar包僅僅保存在倉庫中,有需要的工程引入這個文件接口,并不需要真的把jar包引入過來;

  • jar包需要別人替我們準備好,或者到官網下載;

    • 不同技術的官網提供jar包的方式不同;

    • 語言問題;

    • 有些技術的官網直接通過Maven或者 來提供jar包;

    • 非正規方式下載的jar包,其中的內容很可能不規范;

    • 借助于Maven可以以一種規范的方式下載jar包,因為所有知名的框架或者第三方的jar包已經按照統一的規范放在了Maven的倉庫中,因此jar包也是可靠的;

  • 一個jar包依賴的其他jar包需要自己手動導入 ;

    • 如果所有jar包之間的依賴關系都需要程序員了解,那么會極大的增加學習成本;

    • Maven會自動的將被依賴的jar包導入進來;

  • “統一的規范”非常重要;

    ?

    Maven的概念

  • Maven是一款服務于Java平臺的自動化構建工具;

    • Make→Ant→Maven→Gradle

  • 構建

    • 概念:以java源文件框架的配置文件JSPHTMLCSSJS圖片等資源為原材料的,去生產一個可以運行的項目的過程;

      • 生產

      • 部署

      • 搭建

    • 編譯:Java源文件[User.java]→編譯→Class字節碼文件[User.class]→交給JVM執行 ;

    • 部署:一個BS項目最終運行的并不是動態Web工程本身,而是這個動態Web工程編譯的結果

  • 運行時環境:是一組jar包的引用,不是jar包本身復制到工程中;

  • 構建中的各個環節

  • 清理:將以前編譯得到的舊的字節碼文件刪除,為下一次編譯做準備

  • 編譯:將Java源程序編譯成Class字節碼文件

  • 測試:自動測試,自動調用junit程序

  • 報告:測試程序執行的結果

  • 打包:動態Web工程打war包,Java工程打jar包

  • 安裝:Maven特定的概念,是將打包得到的文件復制到倉庫中的指定位置

  • 部署:將動態Web工程生成的war包復制到Servlet容器的指定目錄下,使其可以運行

  • 自動化構建

  • 安裝Maven核心程序

  • 檢查JAVA_HOME環境變量

  • 解壓Maven核心程序壓縮包,放在一個非中文、無空格的路徑下;

  • 配置Maven的環境變量

    • 推薦配置Maven_HOME或M2_HOME(推薦)

      • 配置PATH

      • 驗證:運行mvn-v命令查看Maven的版本

    ?

    Maven的核心概念

  • 約定的目錄結構

  • POM

  • 坐標

  • 依賴

  • 倉庫

  • 生命周期/插件/目標

  • 繼承

  • 聚合

  • 第一個Maven工程

  • 創建約定的目錄結構

    • 根目錄:工程名

    • sec:源碼

    • pom.xml:Maven工程的核心配置文件

    • main目錄:存放主程序

      • java目錄:java源文件

      • resources目錄:存放框架配置文件或者其他工具的配置文件

    • test目錄:存放測試程序

      • java目錄:java源文件

      • resources目錄:存放框架配置文件或者其他工具的配置文件

  • 為什么用規定的目錄結構?

    • Maven要負責項目的自動化構建,以編譯為例,Maven要想自動編譯,它必須知道Java源文件保存在哪里;

    • 自定義的內容使得框架或工具知道,必須使用規定的目錄表結構或者以配置的方式明確告訴框架(工具);

    • 約定>配置>編碼;

  • 常用Maven命令

  • 注意:執行與構建過程相關的Maven命令,必須進入pom.xml所在的目錄.

  • 與構建過程相關:編譯、測試、打包、......

  • 常用命令

    • mvn clean:清理

    • mvn compile:編譯主程序

    • mvn test-compile:編譯測試程序

    • mvn test:執行測試

    • mvn package:打包

    • mvn instal:安裝

    • mvn site:生成站點

  • 聯網問題

  • Maven的核心程序中僅僅定義了抽象的生命周期,但是具體的工作必須由特定的插件來完成。而插件本身并不包含在Maven的核心流量中;

  • 當我們執行的Maven命令需要用到某些插件時,會首先在本地倉庫查找;

  • 本地倉庫的默認位置:[系統中當前的用戶的家目錄]\:m2\respsitory;

  • Maven核心程序在本地倉庫找不到需要的插件,那么會自動連接外網,到中央倉庫下載;

  • 此時無法連接外網,則構建失敗;

  • 修改默認本地倉庫的位置可以讓Maven在事先準備好的倉庫中查找插件;

    • 找到Maven解壓目錄下的\conf\settings.xml

    • 在文件中找到<localRepository>標簽,修改為準備好的路徑即可;

  • POM

  • 含義:Project Object Model(項目對象模型)

    • DOM:Document Object Model 文檔對象模型

  • pom.xml對于Maven工程是最核心配置文件,與構建相關的一切設置都在這個文件中進行配置,重要程度相當于web工程中的 web.xml

  • 坐標

  • 數學中的坐標:

    • 在平面中使用X、Y兩個量可以定位平面中的任何一個點;

    • 在空間中使用X、Y兩個量可以定位空間中的任何一個點;

  • Maven中的坐標

    • 使用三個值來定義倉庫中的一個Maven工程:

      • groupid:公司或者組織域名倒序+項目名

  • <groupid>com.shang.maven</groupid>

        • artifactid:模塊名

    <artifactid>hello</artifactid>

        • version:版本

    <version>1.0.0</version>

    ?

      • 坐標與倉庫中路徑的對應關系

    路徑為:groupid/artifactid/version/artifactid-version.jar,其中groupid中的.要變成/

    ?

    倉庫

  • 倉庫的分類

    • 本地倉庫:當前電腦上部署的倉庫目錄,為當前電腦所有的指定Maven工程服務;

    • 遠程倉庫

      • 局域網(私服):搭建在局域網環境中,為局域網范圍內的所有Maven工程服務;

      • 中央倉庫:為架設在Internet上,為世界上所有的Maven項目工程服務;

      • 中央倉庫鏡像:為了分擔中央倉庫的流量,提升用戶訪問的速度,也可以減輕負擔;

  • 倉庫中保存的內容:Maven工程

      • Maven自身所需要的插件

      • 第三方框架或工具的jar包

      • 自己開發的Maven工程

    依賴

  • Maven解析依賴信息時會在本地倉庫尋找被依賴的jar包

  • 對于自己開發的Maven工程,使用install命令安裝后就可以進入倉庫。

    mvn install

  • 依賴的范圍<scope>

    • compile

      • 對主程序是否有效:√

      • 對測試程序是否有效:√

      • 是否參與打包:√

    • test

      • 對主程序是否有效:×

      • 對測試程序是否有效:√

      • 是否參與打包:×

      • 典型的例子:

      • provided

        • 對主程序有效

        • 對測試程序有效

        • 不參與打包,因此也不參與部署

        • 典型的例子:Servlet-api.jar


    生命周期

  • 各個構建環節執行的順序:不能打亂順序,必須按照既定的正確順序來執行;

  • Maven的核心程序中定義了抽象的生命周期,生命周期中各個階段的任務是由插件來完成的;

  • Maven核心程序為了更好的實現自動化構建,按照這一特點執行生命周期中的各個階段:不管執行生命周期的哪一個階段,都在此生命周期的第一個階段開始;

  • 插件和目標

    • 生命周期的各個階段僅僅定義了要執行的任務是什么;

    • 各個階段和插件的目標是對應的;

    • 相似的目標由特定的插件來完成;

    • 目標可以看做是調用插件功能的命令

  • 在eclipse中使用Maven

  • Maven插件:Eclipse內置

  • Maven插件的設置

    • installations:指定Maven核心程序的位置。不建議使用插件自帶的Maven程序而應該使用自己解壓的程序;

    • user-settings:指定conf/settings.xml的位置,從而獲取本地倉庫的位置;

  • 基本操作

    • 創建Maven版的Java工程:勾選圖中項目

  • ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的Maven简述以及配置使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。