Maven 快速入門

maven快速入門

1、Maven 介紹

一、啥是 maven ?

    Maven是一個項目管理工具,它包含了這些邏輯:一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個<u>依賴管理系統</u>(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)。當你使用Maven的時候,你用一個明肯定義的項目對象模型來描述你的項目,而後Maven能夠應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。 java

Maven規範化構建流程:
Altweb

二、maven 能作啥?

    用 maven 對項目進行管理,能夠幫咱們<u>構建工程,管理jar包</u>,編譯代碼,減少工程佔用的空間,還能幫咱們自動運行單元測試,打包,生成報表,甚至部署項目等等apache

Maven依賴管理:
Altsegmentfault

2、Maven 的使用

一、maven 的下載安裝與目錄結構

a.下載:windows

    Maven官網下載api

Alt

b.安裝:瀏覽器

    _與普通軟件同樣,不要有特殊符號與空格_緩存

c.目錄結構:tomcat

Alt

maven 的目錄結構:jsp

bin:存放了 maven 的命令 
boot:存放了一些 maven 自己的引導程序,如類加載器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件
lib:存放了 maven 自己運行所需的一些 jar 包
至此咱們的 maven 軟件就可使用了,固然了前提是你的電腦上以前已經安裝並配置好了 JDK

二、maven 環境變量的配置與檢查

a.配置MAVEN_HOME:

配置MAVEN_HOME,變量值就是你的 maven安裝的路徑(bin目錄以前一級目錄)

Alt

添加到Path路徑

Alt

b.檢查Maven是否配置成功:

    __打開 cmd ,輸入 mvn -v 若出現 maven 的版本號,即安裝成功__

三、maven 本地倉庫的配置

    maven 的工做須要從倉庫下載一些 jar 包,本地的項目都會經過 maven 軟件從遠程倉庫(能夠理解爲互聯網上的倉庫)下載 jar 包並存在本地倉庫,本地倉庫就是本地文件夾,當第二次須要此 jar 包時則再也不從遠程倉庫下載,由於本地倉庫已經有在了,能夠將本地倉庫理解爲緩存,有了本地倉庫就不用每次從遠程倉庫下載了。

    _默認本地倉庫位置在{user.din}/.m2/repository,{user.dir}表示 windows用戶目錄_

若須要修改本地倉庫位置,首先打開 conf 目錄下的 settings.xml 文件,再找到 <u><localRepository></u> 標籤(大概在56行),而後把本身所配置的本地倉庫目錄填上去,如本人的本地倉庫:
<localRepository>D:apache-maven-3.5.2maven_repository</localRepository>

    配置完後,終於能夠開始使用 maven 了!!!

四、Maven 工程認識

1)maven 工程的目錄結構

Alt

Alt

2)maven 工程的運行

    進入一個 HelloWord 的 maven Web工程目錄(當前目錄有 pom. Xm文件),運行 <u>mvn tomcat:run</u>命令。
而後根據提示打開瀏覽器輸入資源地址(如:localhost:8080/hello_maven/),便可出現運行結果: Hello World。

3)maven 經常使用命令

a.compile
mvn compile 是 maven 工程的編譯命令,做用是將sr/main/ava下的文件編譯爲 class 文件輸出到 target
目錄下。
b.test
mvn test 是 maven 工程的測試命令,會執行 src/test/java下的單元測試類
c.clean
mvn clean 是 maven 工程的清理命令,執行 clean 會刪除 target目錄及內容
d.package
mvn package是 maven 工程的打包命令,對於 java 工程執行 package 打成 jar 包,對於 web 工程打成 war 包
e.install
mvn install 是 maven 工程的安裝命令,執行 instal 將 maven 打成 jar 包或 war 包發佈到本地倉庫

注:當後面的命令執行時,前面的操做過程也都會自動執行,

3、用 IDEA 開發 Maven 項目

一、maven 在 IDEA 中的配置

a.打開 → Fie → Settings 配置 maven

Alt

b.開始建立工程

    __-> Create New Project__

c.選擇 idea 提供好的 maven 的 web 工程模板

    _普通 Java 工程能夠選擇骨架: maven-archetype-quickstart_

Alt

d.填入項目信息

Alt

Alt

Alt

e.點擊 Finish,等待工程建立

    _IDEA 第一次建立 maven 工程會下載許多依賴包,故時間會比較長_

Alt

Alt

控制檯出現 BUILD SUCCESS 則說明成功

f.因爲目錄結構不完整,須要本身手動補齊

    手動添加 src/main/java 目錄,以下圖右鍵 man 文件夾 → New → Directory,2019 版 IDEA 的 新建 Maven 工程,增長了自動隱藏 Make Directory → Sources Root 的步驟,會有提示 java 做爲自由根目錄

Alt

Alt

二、建立一個 Servlet

a.建立 Servlet

src/main/java 建立了一個 Servlet,但報錯

Alt

解決方案,就是要將 servlet-api-xxx.jar 包放進來,做爲 maven 工程應當添加 servlet 的座標,從而導入它的 jar

b.在 pom.xml 文件中添加 servlet 的座標

Alt

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>3.0-alpha-1</version>
</dependency>

座標定義以下:

<!-- 項目名稱,定義爲組織名+項目名,相似包名 -->
<groupId>com.actadd</groupId>

<!-- 模塊名稱 -->
<artifactId>HelloWorld_Maven</artifactId>

<!-- 當前項目版本號, snapshot爲快照版本即非正式版本,release爲正式發佈版本 -->
<version>1.0-SNAPSHOT</version>

<!-- packaging:打包類型 -->
<!-- jar:執行 package會打成jar包
war:執行 package會打成war包
pom:用於 maven工程的繼承,一般父工程設置爲pom -->
<packaging>war</packaging>

座標來源:

添加依賴須要指定依賴 jar 包的座標,可是不少狀況咱們是不知道 jar 包的的座標,能夠經過以下兩個網址查詢:

http://search.mavenorg/
http://mvnrepository.com

c.依賴範圍

A依賴B,須要在A的 pomum文件中添加B的座標,添加座標時須要指定依賴範圍,依賴範圍包
括:

<u>compile</u></u>:編譯範圍,指 A 在編譯時依賴 B ,此範圍爲默認依賴範圍。編譯範圍的依賴會用在編譯、測試、運行,因爲運行時須要因此編譯範圍的依賴會被打包。

<u>provided</u>: provided 依賴只有在當 JDk 或者一個容器己提供該依賴以後才使用, provided 依賴在編譯和測試時須要,在運行時不須要,好比: servlet api 被 tomcat 容器提供。

<u>runtime</u>: runtime依賴在運行和測試系統的時候須要,但在編譯的時候不須要。好比:jdbc的驅動包。因爲運行時須要因此 runtime 範圍的依賴會被打包

<u>test</u>:test範圍依賴在編譯和運行時都不須要,它們只有在測試編譯和測試運行階段可用好比:junt 因爲運行時不須要因此 test 範圍依賴不會被打包。

<u>system</u>: system 範圍依賴與 provided相似,可是你必須顯式的提供一個對於本地系統中JAR文件的路徑,須要指定 systemPath 磁盤路徑, system 依賴不推薦使用。

<scope> 依賴範圍 </scope>

默認引入的 jar 包 -- compile【默認範圍能夠不寫】(編譯、測試、運行都有效)
servlet-api、jsp-api -- provided(編譯、測試有效,運行時無效防止和 tomcat 下 jar 衝突)
jdbc 驅動 jar 包 -- runtime(測試、運行有效)
junit --- test(測試有效)
依賴範圍由強到弱的順序是: compile > provided > runtime > test

在項目中添加依賴範圍:

Alt

d、設置 jdk 編譯的版本爲本身安裝的版本

Alt

e、繼續編寫 Servlet

package com.actadd.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @ClassName ServletDemo
 * @Description 在 maven 工程中建立一個 ServletDemo
 * @Author Actadd
 * @Date 21:18 2019/12/15
 * @Version 1.0
 */
public class ServletDemo extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //跳到 hello.jsp 資源
        req.getRequestDispatcher("/hello.jsp").forward(req, resp);
    }
}

三、編寫 jsp

a.編寫 hello.jsp

Alt

b.記得在 web.xml 中配置 servlet 的訪問路徑

Alt

c.添加 tomcat 插件

pom.xml 中添加 tomcat 插件

Alt

接下來在運行按鈕添加 tomcat 運行配置:

Alt

Alt

添加 tomcat

Alt

右鍵運行

Alt

四、運行結果

Alt

相關文章
相關標籤/搜索