1.Maven入門

来源:https://www.cnblogs.com/wenjie2000/archive/2023/01/08/17035082.html
-Advertisement-
Play Games

Maven入門 筆記目錄:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 視頻教程(P42~P46) Maven是專門用於管理和構建Java項目的工具,它的主要功能有: 提供了一套標準化的項目結構 提供了一套標準化的構建流程(編譯,測試,打包 ...


Maven入門

筆記目錄:(https://www.cnblogs.com/wenjie2000/p/16378441.html)

視頻教程(P42~P46)

Maven是專門用於管理和構建Java項目的工具,它的主要功能有:

提供了一套標準化的項目結構

提供了一套標準化的構建流程(編譯,測試,打包,發佈…...)

提供了一套依賴管理機制

  • 標準化的項目結構

    Maven提供了一套標準化的項目結構,所有IDE(eclipse,idea,myeclipse這類軟體)使用Maven構建的項目結構完全一樣,所有IDE創建的Maven項目可以通用

  • 標準化的構建流程

  • 依賴管理

    依賴管理其實就是管理你項目所依賴的第三方資源(jar包、插件...)

Maven簡介

  • Apache Maven是一個項目管理和構建工具,它基於項目對象模型(POM)的概念,通過一小段描述信息來管理項目的構建、報告和文檔
  • 官網: http://maven.apache.org/

Maven模型:

  • 倉庫分類:

    本地倉庫:自己電腦上的一個目錄

    中央倉庫:由Maven團隊維護的全球唯一的倉庫 (地址: https://repo1.maven.org/maven2/)

    遠程倉庫(私服):一般由公司團隊搭建的私有倉庫(國內由於網路原因,一般使用一些企業搭建的開放的私服)

  • 當項目中使用坐標引入對應依賴jar包後,首先會查找本地倉庫中是否有對應的jar包:

    如果有,則在項目直接引用;

    如果沒有,則去中央倉庫中下載對應的jar包到本地倉庫。

  • 還可以搭建遠程倉庫,將來jar包的查找順序則變為:

    本地倉庫→遠程倉庫→中央倉庫(本地倉庫會在遠程倉庫中找jar包。如果遠程倉庫中沒有,遠程倉庫會到中央倉庫中去下載該jar包)

Maven安裝配置

安裝過程比較簡單。考慮到看這篇博客的人曾經安裝過jdk和mysql,安裝過程類同理。這裡就只是粗略描述一下,就不放操作截圖了。如果不清楚可自行百度。

下載地址(根據自己情況選擇版本):https://archive.apache.org/dist/maven/maven-3/

  1. 下載並解壓apache-maven-3.6.3-bin.zip

  2. 新建系統變數MAVEN_HOME(bin文件夾所在目錄,例如:D:\apache-maven-3.6.3)

  3. 在Path中新建環境變數%MAVEN_HOME%\bin

  4. 在cmd中輸入mvn -version,如果出現版本信息則環境變數配置成功

  5. 配置本地倉庫:修改conf/settings.xml中的<localRepository>為一個指定目錄 (可根據自己喜好設置倉庫位置)

    <localRepository>D:\maven-repository</localRepository>
    
  6. 配置阿裡雲私服:修改conf/settings.xml中的<mirrors>標簽,為其添加如下子標簽:

    <!--配置阿裡雲私服-->
    <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    

Maven基本使用

Maven常用命令

如果要手動執行,需要在pom.xml文件夾下,在地址欄輸入cmd,回車。

以下命令都需要在前面加“mvn”,例如:mvn compile 為執行編譯的命令

  • compile:編譯 -> 生成class文件,位於target文件夾
  • clean:清理 -> 刪除target文件夾
  • package:打包 -> 將項目打包為文件,文件位於target文件夾下
  • test:測試 -> 執行test\java文件夾中的代碼
  • install:安裝 -> 把打包好的文件存放到本地倉庫

Maven生命周期

  • Maven構建項目生命周期描述的是一次構建過程經歷經歷了多少個事件

  • Maven對項目構建的生命周期劃分為3套

    clean:清理工作

    default:核心工作,例如編譯,測試,打包,安裝等

    site(不常用):產生報告,發佈站點等

同一生命周期內,執行後邊的命令,前邊的所有命令會自動執行(例如執行install,maven會自動執行complie、test和package,否則不能執行install)

IDEA配置Maven

IDEA配置Maven環境

  1. 選擇IDEA中 File --> Settings

  2. 搜索 maven

  3. 設置IDEA使用本地安裝的Maven,並修改配置文件路徑(路徑根據自己實際情況,我的路徑僅供參考)(修改配置文件和本地倉庫目錄需要選中Override)

Maven坐標詳解

  • 什麼是坐標?

    Maven 中的坐標是資源的唯一標識

    使用坐標來定義項目或引入項目中需要的依賴

  • Maven 坐標主要組成

    groupld:定義當前Maven項目隸屬組織名稱(通常是功能變數名稱反寫,例如: com.itheima)

    artifactld:定義當前Maven項目名稱(通常是模塊名稱,例如order-service、goods-service)

    version:定義當前項目版本號

    <groupId>com.example</groupId>
    <artifactId>javaweb01</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.9</version>
    </dependency>
    

IDEA創建Maven項目

IDEA界面中:左上角 File(文件)-->New(新建)-->Project...(項目)

選擇maven

各種信息根據自己情況修改

創建成功

IDEA導入Maven項目

點擊右側Maven,點擊+號

找到一個maven項目的pom.xml文件,再點擊OK

左側就出現了剛剛導入的maven項目

配置Maven-Helper插件

IDEA能夠執很方便地執行maven的常用命令,位置如下圖所示(直接點擊就能執行):

Maven-Helper這個插件能夠使用戶更加方便的執行maven命令。相較於IDEA自帶的,它還能進行Debug。(看自己喜好,不是必須安裝)

Maven-Helper安裝步驟:

  1. 選擇IDEA中 File --> Settings
  2. 選擇 Plugins
  3. 搜索 Maven,選擇第一個Maven Helper,點擊Install安裝,彈出面板中點擊Accept
  4. 重啟IDEA

依賴管理

使用坐標導入jar包

  1. 在pom.xml中編寫<dependencies>標簽

  2. 在<dependencies>標簽中使用<dependency>引入坐標

  3. 定義坐標的groupld,artifactld,version

    其中的坐標信息有相關的網站可供查找:https://mvnrepository.com/

    此處以MySQL5.7的驅動為例:

    搜索mysql,選擇第一個

    選擇自己需要的版本(一般是找一個用的頻率比較高的)

    其中就有需要的坐標信息(如果版本不相容,只需要手動修改版本號)

    就可以將坐標信息複製到pom.xml文件中

  4. 點擊刷新按鈕,使坐標生效

    如果出現以下出現紅色,是因為本地倉庫中沒有這個包,點擊右上角的“m”就會使該配置文件生效,會自動下載需要的包(也可以設置不需要點擊自動生效,方法自行百度。)

如果本地倉庫已經下載了該jar包可以使用 Alt+Insert,然後點擊Dependency

然後就可以搜索本地的包進行添加。點擊Add就能幫你寫好

依賴範圍

  • 通過設置坐標的依賴範圍(scope),可以設置對應jar包的作用範圍:編譯環境(src/main/java/)、測試環境(src/test/java/)、運行環境(最終使用時)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 變數作用域: 1、全局變數:在全局作用域下聲明的變數 ​ 在函數內部沒有聲明直接賦值的變數也是屬於全局變數 全局變數:只有瀏覽器關閉的時候才會銷毀,比較占記憶體資源 局部變數 :當我們程式執行完畢就會銷毀,比較節約記憶體資源 作用域鏈:內部函數訪問外部函數的變數,採取的是鏈式查找的方式來決定取哪個值 這 ...
  • 歡迎閱讀本系列其他文章 【前端調試】- 更好的調試方式 VSCode Debugger 【前端調試】- 斷點調試的正確打開方式 介紹 首先簡單過一下Performance的使用,打開網頁點擊控制台Performance,錄製5s的數據 其中 Main 這部分就是網頁的主線程,也就是執行 Event ...
  • 方法 System.out.println();//是什麼嗎? //系統類+對象+方法 Java方法是一對語句的集合,他們一起負責執行一個功能 方法是解決一類問題的步驟的有序組合 方法包含於類或對象中 方法在程式中被創建,在其他地方被引用 設計原則: 方法本意是功能塊**(類似C語言的函數)**, ...
  • 一、列表是什麼 列表:由一系列按特定順序排列的元素組成(列表是有序集合)。 表示:用方括弧[]來表示,並用逗號來分隔其中的元素。 訪問:訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。 列表索引從0開始:在Py ...
  • 實踐環境 Odoo 14.0-20221212 (Community Edition) Odoo Web Login Screen 14.0 https://apps.odoo.com/apps/modules/14.0/odoo_web_login/# 操作步驟 1、把下載的odoo web lo ...
  • MyBatis 筆記目錄:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 視頻教程(P47~P60) ==看前提醒==:如果之前學過一些框架,只想知道mybatis怎麼用,那麼就不太建議看任何第三方教程,更建議直接去看官方文檔,從入門到具體配 ...
  • 2023-01-08 一、Maven的核心概念 1、倉庫 (1)倉庫的分類 ①本地倉庫:為當前電腦提供maven服務 ②遠程倉庫:為其他電腦提供maven服務 a.私服:架設在當前區域網環境下,為當前區域網範圍內的所有Maven工程服務 b.中央倉庫:架設在Internet上,為全世界所有Mav ...
  • SpringMVC攔截器 攔截器是用來乾什麼的? 在一個登錄功能中,如果用戶沒有登錄卻嘗試通過地址欄直接訪問內部伺服器資源,這顯然是非法的。怎樣對這些的非法訪問進行攔截? SpringMVC的攔截器可以解決這個問題。 使用攔截器 編寫攔截器 創建攔截器類,實現HandlerInterceptor介面 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...