Maven

一,Mavenjava

1.1Apache Maven是個項目管理和自動構建工具,基於項目對象模型(POM)的概念, Maven 除了以程序構建能力爲特點以外,還提供高級項目管理工具 。android

       做用:完成項目的相關操做,如:編譯,構建,單元測試,安裝,網站生成和基於Maven部署項目。程序員

注:Maven須要聯網使用web

1.2 什麼是POM
Project Object Model,項目對象模型。
經過xml格式保存的pom.xml文件。做用相似ant的build.xml文件,功能更強大。
該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目受權、項目的url、項目的依賴關係等等。
最後,根據你的項目須要更新您的pom.xml apache

在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可使用5個值:
* compile,缺省值,適用於全部階段,會隨着項目一塊兒發佈。
* provided,相似compile,指望JDK、容器或使用者會提供這個依賴。如servlet.jar。
* runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。
* test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發佈。
* system,相似provided,須要顯式提供包含依賴的jar,Maven不會在Repository中查找它。api

1.3 什麼是自動構建工具?網絡

         1.2.1app

                * .java->*.class->run
         方式一
              javac HelloWorld.java
              java HelloWorld
         方式二
               開發工具Eclipsewebapp

1.4 經常使用的自動構建工具
     ant
     maven
     Gradle android項目管理和構建已使用maven

二,Maven安裝與配置

2.1 下載maven安裝包,解壓便可使用

     地址:http://maven.apache.org/download.cgi 

2.2 配置maven環境變量

      2.2.1 MAVEN_HOME

      2.2.2 M2_HOME

配置方式跟jdk有些相似,環境變量MAVEN_HOME和M2_HOME的值爲maven的根目錄

M2_HOME

 

 MAVEN_HOME

而後在PATH環境變量里加入「%MAVEN_HOME%\bin;%M2_HOME%\bin;」便可

 

2.3 驗證maven環境變量
doc窗口執行命令「mvn –version」

配置成功

 

  2.4 修改「MAVEN_HOME\config」下的setting.xml文件,配置本地倉庫。

例如:<localRepository>D:\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\repository</localRepository>

 

倉庫的做用就是用來存放jar包的
2.4.1 倉庫的分類
      中央倉庫
      公司倉庫(也叫私人倉庫或私服)
      本地倉庫

中央倉庫(http://search.maven.org/,但通常使用另一個網站:http://www.mvnrepository.com/)
公司倉庫
本地倉庫
公司裏面還會有一個大倉庫(本地)全公司使用
本地倉庫程序員本身使用,私服全公司使用,中央倉庫全部人用

2.4.2:jar的查找順序:本地倉庫->私服->中央倉庫

2.4.3:換源「阿里雲」

 

2.5 maven插件安裝與配置

設置maven安裝路徑

 Installations

 

指定setting.xml文件User Settings

 User Settings

Maven用戶能夠選擇配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml,前者是全局範圍的,

整臺機器上的全部用戶都會直接受到該配置的影響,然後者是用戶範圍的,只有當前用戶纔會受到該配置的影響。
推薦使用用戶範圍的settings.xml,主要是爲了不無心識地影響到系統中的其餘用戶,
並且爲了之後maven升級的方便,直接把配置文件從倉庫拷過去就能夠了。

 

三. Maven的使用:建立java項目

new一個 Maven project

 maven-archetype-webapp

注意Catalog選中Internal

下面那個後綴名選中爲webapp

 

group id:組織id,通常就是公司域名反寫
artifact id:項目名字
version:版本
package:java包名

 

 

四. Maven的使用:建立wep項目

Maven project
maven-archetype-webapp

4.1 在porm.xml中加入servlet api,否則報錯

4.2 更改默認的jdk1.5爲jdk1.8

4.3 更改junit爲4.12

4.4 更改web.xml 默認的爲2.3改成3.1 由於jdk1.8指向3.1的

4.5 修改Project Facets

 

 

4.6 添加的配置archetypeCatalog=internal可加快項目建立速度 archetypeCatalog用來指定maven-archetype-plugin讀取archetype-catalog.xml文件的位置:

internal——maven-archetype-plugin內置的
local——本地的,位置爲~/.m2/archetype-catalog.xml
remote——指向Maven中央倉庫的Catalog

4.7項目右鍵-->Maven-->Update Project

五 Maven測試

在src/main/java下建立一個page包寫一個servlet

 MavenServlet 測試類

 1 package com.maven.test;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 @WebServlet("/maven")
12 public class MavenServlet extends HttpServlet {
13 
14     /**
15      * 
16      */
17     private static final long serialVersionUID = 4326535764545072323L;
18 
19     @Override
20     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21         // TODO Auto-generated method stub
22         doPost(req, resp);
23     }
24     
25     @Override
26     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
27         // TODO Auto-generated method stub
28         System.out.println("Maven環境搭配成功");
29     }
30 }

 測試結果

 六 maven的jar下載流程圖

根據網絡請求的便利性,請求的路徑通常是 本地倉庫 -> 私有倉庫(私有網絡)->中央倉庫(因爲中央倉庫可能在國外咱們可能須要配置鏡像)。

相關文章
相關標籤/搜索