• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Maven筆記(轉)

    標簽: 踩的坑、程序配置和編程技巧  maven

    Maven

    1部分

    完成一個java項目,需要做哪些工作
    1.分析項目要做什么,知道項目有哪些組成部分。
    2.設計項目,通過哪些步驟,使用哪些技術。需要多少人, 多長的時間。
    3.組建團隊,招人, 購置設備,服務器, 軟件, 筆記本。
    4.開發人員寫代碼。 開發人員需要測試自己寫代碼。 重復多次的工作。
    5.測試人員,測試項目功能是否符合要求。
    測試開發人員提交代碼-如果測試有問題–需要開發人員修改–在提交代碼給測試
    –測試人員在測試代碼-如果還有問題-在交給開發人員-開發人員在提交-在測試
    直到-測試代碼通過。

    2.傳統開發項目的問題,沒有使用maven【meivn】管理的項目
    1)很多模塊,模塊之間有關系, 手工管理關系,比較繁瑣。
    2)需要很多第三方功能, 需要很多jar文件,需要手工從網絡中獲取各個jar
    3)需要管理jar的版本, 你需要的是mysql.5.1.5.jar 拿你不能給給一個mysql.4.0.jar
    4)管理jar文件之間的依賴, 你的項目要使用a.jar 需要使用b.jar里面的類。
    必須首先獲取到b.jar才可以, 然后才能使用a.jar.

     a.jar需要b.jar這個關系叫做依賴, 或者你的項目中要使用mysql的驅動, 也可以叫做項目依賴mysql驅動。
     a.class使用b.class, a依賴b類
    

    3.需要改進項目的開發和管理,需要maven
    1)maven可以管理jar文件
    2)自動下載jar和他的文檔,源代碼
    3)管理jar直接的依賴, a.jar需要b.jar , maven會自動下載b.jar
    4)管理你需要的jar版本
    5)幫你編譯程序,把java編譯為class
    6)幫你測試你的代碼是否正確。
    7)幫你打包文件,形成jar文件,或者war文件
    8)幫你部署項目

    4.構建: 項目的構建。
    構建是面向過程的,就是一些步驟,完成項目代碼的編譯,測試,運行,打包,部署等等。
    maven支持的構建包括有:
    1.清理, 把之前項目編譯的東西刪除掉,我新的編譯代碼做準備。
    2.編譯, 把程序源代碼編譯為執行代碼, java-class文件
    批量的,maven可以同時把成千上百的文件編譯為class。
    javac 不一樣,javac一次編譯一個文件。
    3.測試, maven可以執行測試程序代碼,驗證你的功能是否正確。
    批量的,maven同時執行多個測試代碼,同時測試很多功能。
    4.報告, 生成測試結果的文件, 測試通過沒有。
    5.打包, 把你的項目中所有的class文件,配置文件等所有資源放到一個壓縮文件中。
    這個壓縮文件就是項目的結果文件, 通常java程序,壓縮文件是jar擴展名的。
    對于web應用,壓縮文件擴展名是.war
    6.安裝, 把5中生成的文件jar,war安裝到本機倉庫
    7.部署, 把程序安裝好可以執行。

    5.maven核心概念: 用好maven,了解這些概念
    ①POM : 一個文件 名稱是pom.xml , pom翻譯過來叫做項目對象模型。
    maven把一個項目當做一個模型使用。控制maven構建項目的過程,管理jar依賴。

    ②約定的目錄結構 : maven項目的目錄和文件的位置都是規定的。

    ③坐標 : 是一個唯一的字符串,用來表示資源的。

    ④依賴管理 : 管理你的項目可以使用jar文件

    ⑤倉庫管理(了解) :你的資源存放的位置

    ⑥生命周期 (了解) : maven工具構建項目的過程,就是生命周期。
    ⑦插件和目標(了解):執行maven構建的時候用的工具是插件
    ⑧繼承
    ⑨聚合

    講maven的使用,先難后易的。 難是說使用maven的命令,完成maven使用 , 在idea中直接使用maven,代替命令。

    6.maven工具的安裝和配置。
    1)需要從maven的官網下載maven的安裝包 apache-maven-3.3.9-bin.zip
    2)解壓安裝包,解壓到一個目錄,非中文目錄。
    子目錄 bin :執行程序,主要是mvn.cmd
    conf :maven工具本身的配置文件 settings.xml
    3)配置環境變量
    在系統的環境變量中,指定一個M2_HOME的名稱, 指定它的值是maven工具安裝目錄,bin之前的目錄

    M2_HOME=D:\work\maven_work\apache-maven-3.3.9
    
     再把M2_HOME加入到path之中,在所有路徑之前加入 %M2_HOME%\bin;
    

    4)驗證,新的命令行中,執行mvn -v

    注意:需要配置JAVA_HOME ,指定jdk路徑
    
    
    C:\Users\Administrator>mvn -v
     出現如下內容,maven安裝,配置正確。
    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:4
    Maven home: D:\work\maven_work\apache-maven-3.3.9
    Java version: 1.8.0_40, vendor: Oracle Corporation
    Java home: C:\java\JDK8-64\jre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
    

    二部分

    1.maven約定的目錄結構, 約定是大家都遵循的一個規則。

    每一個maven項目在磁盤中都是一個文件夾(項目-Hello)
    Hello/
    —/src
    ------/main #放你主程序java代碼和配置文件
    ----------/java #你的程序包和包中的java文件
    ----------/resources #你的java程序中要使用的配置文件

      ------/test  #放測試程序代碼和文件的(可以沒有)
      ----------/java       #測試程序包和包中的java文件
      ----------/resources  #測試java程序中要使用的配置文件
    
      ---/pom.xml  #maven的核心文件(maven項目必須有)
    

    2.疑問: mvn compile 編譯src/main目錄下的所有java文件的。
    1)為什么要下載
    maven工具執行的操作需要很多插件(java類–jar文件)完成的
    2)下載什么東西了
    jar文件–叫做插件–插件是完成某些功能

    3)下載的東西存放到哪里了。
        默認倉庫(本機倉庫):
       C:\Users\(登錄操作系統的用戶名)Administrator\.m2\repository
    
    
    
    Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter-2.0.9.pom
    

    https://repo.maven.apache.org :中央倉庫的地址

    執行mvn compile, 結果是在項目的根目錄下生成target目錄(結果目錄),
    maven編譯的java程序,最后的class文件都放在target目錄中
    
    
    設置本機存放資源的目錄位置(設置本機倉庫):
     1. 修改maven的配置文件, maven安裝目錄/conf/settings.xml
        先備份 settings.xml
    
     2. 修改 <localRepository>  指定你的目錄(不要使用中文目錄)
    
     D:\work\maven_work\maven_repository
    

    3.倉庫
    1)倉庫是什么: 倉庫是存放東西的, 存放maven使用的jar 和 我們項目使用的jar
    > maven使用的插件(各種jar)
    > 我項目使用的jar(第三方的工具)

    2)倉庫的分類
    >本地倉庫, 就是你的個人計算機上的文件夾,存放各種jar
    >遠程倉庫, 在互聯網上的,使用網絡才能使用的倉庫
    ①:中央倉庫,最權威的, 所有的開發人員都共享使用的一個集中的倉庫,
    https://repo.maven.apache.org :中央倉庫的地址
    ②:中央倉庫的鏡像:就是中央倉庫的備份, 在各大洲,重要的城市都是鏡像。

    		③:私服,在公司內部,在局域網中使用的, 不是對外使用的。
    

    3)倉庫的使用,maven倉庫的使用不需要人為參與。

    	開發人員需要使用mysql驅動--->maven首先查本地倉庫--->私服--->鏡像--->中央倉庫
    

    4.pom:項目對象模型,是一個pom.xml文件
    1)坐標:唯一值, 在互聯網中唯一標識一個項目的
    公司域名的倒寫
    自定義項目名稱
    自定版本號

       https://mvnrepository.com/ 搜索使用的中央倉庫, 使用groupId 或者 artifactId作為搜索條件
     
    
      2) packaging: 打包后壓縮文件的擴展名,默認是jar ,web應用是war 
          packaging 可以不寫, 默認是jar
    
    
     3) 依賴
        dependencies 和dependency ,相當于是 java代碼中import
    
    	 你的項目中要使用的各種資源說明, 比我的項目要使用mysql驅動
    
    	 <dependencies>
    		<!--依賴  java代碼中 import -->
    	  <dependency>
    		<groupId>mysql</groupId>
    		<artifactId>mysql-connector-java</artifactId>
    		<version>5.1.9</version>
    	 </dependency>
     
     </dependencies>
    
      4)properties:設置屬性
    
      5)build : maven在進行項目的構建時, 配置信息,例如指定編譯java代碼使用的jdk的版本等
    

    5.maven生命周期, maven的命令,maven的插件
    maven的生命周期:就是maven構建項目的過程,清理,編譯,測試,報告,打包,安裝,部署
    maven的命令:maven獨立使用,通過命令,完成maven的生命周期的執行。
    maven可以使用命令,完成項目的清理,編譯,測試等等

     maven的插件: maven命令執行時,真正完成功能的是插件,插件就是一些jar文件, 一些類。
    

    1)單元測試(測試方法):用的是junit, junit是一個專門測試的框架(工具)。
    junit測試的內容: 測試的是類中的方法, 每一個方法都是獨立測試的。
    方法是測試的基本單位(單元)。

      maven借助單元測試,批量的測試你類中的大量方法是否符合預期的。
    

    2)使用步驟
    1.加入依賴,在pom.xml加入單元測試依賴


    junit
    junit
    4.11
    test

     2.在maven項目中的src/test/java目錄下,創建測試程序。
        推薦的創建類和方法的提示:
    	 1.測試類的名稱 是Test + 你要測試的類名
    	 2.測試的方法名稱 是:Test + 方法名稱
    
    	 例如你要測試HelloMaven ,
    	 創建測試類 TestHelloMaven
       @Test
    	 public void testAdd(){
          測試HelloMaven的add方法是否正確
    	 }
    
    
    	 其中testAdd叫做測試方法,它的定義規則
    	 1.方法是public的,必須的
    	 2.方法沒有返回值, 必須的
    	 3.方法名稱是自定義的,推薦是Test + 方法名稱
    	 4.在方法的上面加入 @Test
    
    
    
     3)mvn compile 
       編譯main/java/目錄下的java 為class文件, 同時把class拷貝到 target/classes目錄下面
    	把main/resources目錄下的所有文件 都拷貝到target/classes目錄下
    

    第三部分:

    1.在idea中設置maven ,讓idea和maven結合使用。
    idea中內置了maven ,一般不使用內置的, 因為用內置修改maven的設置不方便。
    使用自己安裝的maven, 需要覆蓋idea中的默認的設置。讓idea指定maven安裝位置等信息

    配置的入口 ①:配置當前工程的設置, file--settings ---Build, Excution,Deployment--Build Tools
                   --Maven 
    					   Maven Home directory: maven的安裝目錄
    						User Settings File :  就是maven安裝目錄conf/setting.xml配置文件
    						Local Repository :    本機倉庫的目錄位置
    
    				   --Build Tools--Maven--Runner  
    					  VM Options : archetypeCatalog=internal
    					  JRE: 你項目的jdk
    
    
                    archetypeCatalog=internal , maven項目創建時,會聯網下載模版文件,
    					  比較大, 使用-DarchetypeCatalog=internal,不用下載, 創建maven項目速度快。
    
    
    
                ②:配置以后新建工程的設置, file--other settings--Settings for New Project
    

    2.使用模版創建項目
    1)maven-archetype-quickstart : 普通的java項目
    2)maven-archetype-webapp : web工程

    第四部分

    1依賴范圍, 使用scope表示的。
    scope的值有 compile, test, provided ,默認是compile
    scope:表示依賴使用的范圍,也就是在maven構建項目的那些階段中起作用。
    maven構建項目 編譯, 測試 ,打包, 安裝 ,部署 過程(階段)

    junit的依賴范圍是 test

    junit
    junit
    4.11
    test

    <dependency>
      <groupId>a</groupId>
      <artifactId>b</artifactId>   b.jar
      <version>4.11</version>
    </dependency>
    
    
     <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>          servlet.jar
      <scope>provided</scope> 提供者
    </dependency>
    

    你在寫項目的中的用到的所有依賴(jar ) ,必須在本地倉庫中有。
    沒有必須通過maven下載, 包括provided的都必須下載。

    你在servlet需要繼承HttpServlet( provided) , 你使用的HttpServlet是maven倉庫中的。
    
    當你的寫好的程序, 放到 tomat服務器中運行時, 此時你的程序中不包含servlet的jar
    因為tomcat提供了 servlet的.jar
    

    第五部分:

    maven常用操作
    1.maven的屬性設置
    設置maven的常用屬性
    2.maven的全局變量
    自定義的屬性,1.在 通過自定義標簽聲明變量(標簽名就是變量名)
    2.在pom.xml文件中的其它位置,使用 ${標簽名} 使用變量的值

    自定義全局變量一般是定義 依賴的版本號, 當你的項目中要使用多個相同的版本號,
    先使用全局變量定義, 在使用${變量名}
    

    3.資源插件

    src/main/java **/*.properties **/*.xml <!―filtering 選項 false 不啟用過濾器, *.property 已經起到過濾的作用了 --> false
    1. 默認沒有使用resources的時候, maven執行編譯代碼時, 會把src/main/resource目錄中的文件拷貝到target/classes目錄中。
      在這里插入圖片描述
    版權聲明:本文為kaikai_gege原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/kaikai_gege/article/details/109628820

    智能推薦

    Maven 筆記

    Maven 筆記 Maven 下載 http://maven.apache.org/ 安裝Maven 解壓 配置環境變量 測試是否安裝成功 使用命令行工具構建一個 Maven 項目 打包 使用 Eclipse 構建一個 Maven 項目 安裝Maven插件 設置環境 創建項目 打包 可以設一個環境變量M2_HOME指向你的maven安裝目錄 M2_HOME=D:\Maven\apache-mave...

    Maven筆記

    文章目錄 一、Why 1.1 層級結構 1.2 Maven解決的問題 二、What 三、How 3.1 Maven的核心概念 3.1.1 約定的目錄結構 3.1.2 POM(Project Object Model_項目對象模型) 3.1.3 坐標 3.1.4 依賴 `` 3.1.5 倉庫 3.1.6 生命周期/插件/目標 3.1.7 繼承 3.1.8 聚合 3.2 常用Maven命令 一、Why...

    maven筆記

    maven筆記 作用 1.maven可以管理jar文件 2.自動下載jar和他的文檔和源碼 3.管理jar直接的依賴 a.jar需要b.jar 那么maven會自動幫你下載b.jar 4.管理你需要的jar版本 5.幫你編譯程序 把java編譯為class文件 6.幫你測試你的代碼是否正確 7.幫你打包文件 形成jar文件 或者war文件 8.幫你部署項目 項目搭建 構建是面向過程的 就是一些步驟...

    maven筆記

    導言: 生產環境下開發不再是一個項目一個工程,而是每一個模塊創建一個工程, 而多個模塊整合在一起就需要 使用到像 Maven 這樣的構建工具。 1 Why? 1.1 真的需要嗎? Maven 是干什么用的?這是很多同學在剛開始接觸 Maven 時最大的問題。之所以會提出這個問題,是因為即使不使用 Maven 我們仍然可以進行 B/S 結構項目的開發。從表述層、業務邏輯層到持久化層再到數據庫都有成熟...

    Maven 筆記

    Maven 依賴 == jar 包 target 目錄消失maven clean 是 jar 包在干活 將項目根目錄下的 target 目錄庫清理掉 compile:編譯 將項目中的 .java 文件編譯為 .class 文件 test:單元測試 單元測試類名有要求:XxxxTest.java 將項目根目錄下 src/test/java 目錄下的單元測試類都會執行。 package:打包 web ...

    猜你喜歡

    Maven筆記

    文章目錄 Maven 安裝(Windows) Maven核心概念 Maven自定義屬性 Maven 命令 Maven插件配置 IDEA中使用maven 常用技巧 Maven資源插件 Maven 安裝(Windows) 下載:官網下載對應安裝包即可。 解壓 bin目錄 包含mvn.cmd和mvnDebug.cmd兩個命令行工具 conf目錄 常用的setting.xml文件 lib目錄:由于mave...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡