Maven的學習以及安裝配置 2024/3/1 idea

1. Maven的安裝

1.1 首先查看編程工具合適的Maven版本

我使用的是2024/3/1 版本的idea,接下來我會用這個版本的idea進行演示。idea沒有漢化的也可以參考我的步驟。

1、打開idea的設置,搜索Maven,進入Maven設置。

?我們可以看到,idea會推薦我們使用的Maven版本:

2. 下載合適的Maven版本

Maven官網下載鏈接:下載 Apache Maven – Maven

?接下來我們要去Maven的官網上下載相對的版本,不要選錯鏈接了!

?我下載的鏈接是:

apache-maven-3.9.9-bin.zip

?3. Maven的解壓和配置

解壓到沒有中文和特殊符文的目錄下,然后進入到bin目錄的上一級目錄,即進入有bin目錄的目錄中,然后進入conf目錄中:

?進入setting.xml中:

?在<mirrors>中添加國內的Maven鏡像:

?阿里云Maven鏡像:

<!-- 配置阿里云的Maven鏡像 -->
? ? ? ? ?<mirror>
? ? ? ? ? ? <id>alimaven</id>
? ? ? ? ? ? <name>aliyun maven</name>
? ? ? ? ? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? </mirror>

?華為Maven鏡像:

?<!-- 配置華為的Maven鏡像 -->
? ? ? ? <mirror>
? ? ? ? <id>huaweicloud</id>
? ? ? ? <mirrorOf>*</mirrorOf>
? ? ? ? <url>https://mirrors.huaweicloud.com/repository/maven/</url>
? ? ? ? </mirror>

創建本地Maven倉庫:

?4. 在idea中配置Maven

?接下來就是要讓我們的編寫工具認識下載好的Maven:

設置Maven主路徑:

?

?用戶設置文件:

?

設置Maven的本地倉庫:?

?5. 創建Maven工程

?

注意:一定要等第一步結束后才能執行第二步!!!?

2. Maven的學習?

2.1 Maven的簡介

Maven 是一個項目管理工具,主要用于 Java 項目的構建、依賴管理和項目文檔生成。它可以自動化構建過程,提高開發效率,確保項目的一致性和可重復性。

2.2?Maven的主要功能

1. 依賴管理

  • Maven 可以自動下載項目所需的依賴庫,并將其存儲在本地倉庫中。
  • 可以方便地管理項目的依賴關系,避免版本沖突。

2. 項目構建

  • 定義了標準的項目構建生命周期,包括編譯、測試、打包、部署等階段。
  • 可以通過命令行或集成開發環境(IDE)插件來執行構建過程。

3. 多模塊項目管理

  • 支持構建多模塊項目,方便管理大型項目的結構。
  • 可以輕松地在不同模塊之間共享代碼和資源。

4.?項目文檔生成

  • 可以生成項目文檔,如 Javadoc、項目報告等。

這也是我們為什么要學Maven的原因,不同人之間的寫代碼的思路、方式都是不一樣的,Maven可以更好的方便我們管理項目進度實施,還有不同平臺之間也能正常運行。同時簡化一些重復的功能

2.3 Maven構建項目的生命周期、常用命令

1、什么是生命周期

????????在Maven出現之前,項目構建的生命周期就已經存在,軟件開發人員每天都在對項目進行清理,編譯,測試,部署等工作,這個過程就是項目構建的生命周期。雖然大家都在不停的做構建工作,但公司與公司之間,項目與項目之間構建項目的方式有所不同。

????????Maven對所有的構建過程進行了抽象和統一。Maven構建項目的生命周期包含了項目清理,初始化,編譯,測試,打包,集成測試,驗證,部署和站點生成等幾乎所有構建步驟。

比如我們項目中最常用的一套流程,如下圖所示:

Maven的生命周期是抽象的,這意味著生命周期本身不做任何實際工作,在Maven的設計中,實際任務(如代碼編譯)都交給插件來完成。

2、 Maven的三套生命周期

1. clean生命周期

主要用于清理項目構建過程中產生的臨時文件和輸出目錄等,有以下三個階段:

  • pre-clean:執行清理前的操作,這個階段一般很少有具體的任務綁定,但可以用于一些準備工作,比如檢查是否有必要進行清理等。
  • clean:真正執行清理操作的階段,默認會刪除項目中的 target 目錄及其中的所有內容,也就是清理掉上一次構建生成的所有輸出文件和目錄。
  • post-clean:清理操作完成后的階段,可用于執行一些清理后的后續操作,比如記錄清理操作的日志等。
2. default生活周期

這是 Maven 最核心的生命周期,用于項目的編譯、測試、打包、安裝和部署等主要構建任務,包含以下階段:

  1. validate:驗證項目是否正確,并且所有必要的信息是否可用。例如檢查項目的 POM 文件是否正確解析,必要的依賴是否能找到等。
  2. initialize:初始化構建,比如設置一些構建屬性,創建一些必要的目錄等。
  3. generate-sources:生成項目的源代碼,比如通過代碼生成工具根據模板生成一些 Java 代碼等。
  4. process-sources:處理項目的源代碼,比如過濾一些資源文件中的變量等。
  5. generate-resources:生成項目需要的資源文件,比如在某些框架中可能會生成配置文件等。
  6. process-resources:處理資源文件,將資源文件復制到目標目錄等,默認會將 src/main/resources 目錄下的文件復制到 target/classes 目錄。
  7. compile:編譯項目的源代碼,例如將 Java 源文件編譯成字節碼文件,默認會編譯 src/main/java 目錄下的 Java 文件到 target/classes 目錄。
  8. process-classes:對編譯后的類文件進行后處理,比如在 Java 項目中可能會進行字節碼增強等操作。
  9. generate-test-sources:生成測試用的源代碼,比如使用一些測試代碼生成工具生成測試類等。
  10. process-test-sources:處理測試源代碼,類似于對主源代碼的處理,可能會進行過濾等操作。
  11. generate-test-resources:生成測試需要的資源文件。
  12. process-test-resources:處理測試資源文件,將測試資源文件復制到測試目標目錄,默認是 target/test-classes 目錄。
  13. test-compile:編譯測試源代碼,將測試源文件編譯成字節碼文件,默認編譯 src/test/java 目錄下的文件到 target/test-classes 目錄。
  14. process-test-classes:對編譯后的測試類文件進行后處理。
  15. test:使用合適的單元測試框架運行測試,比如 JUnit、TestNG 等,會在編譯后的測試類上執行測試方法。
  16. prepare-package:在實際打包之前進行一些準備工作,比如對一些文件進行重命名、調整目錄結構等。
  17. package:將項目打包成可發布的格式,如 JAR、WAR、EAR 等。
  18. pre-integration-test:在集成測試之前執行的操作,比如啟動一些服務、準備測試環境等。
  19. integration-test:執行集成測試,測試項目與其他系統或組件的集成情況。
  20. post-integration-test:集成測試完成后執行的操作,比如清理測試環境、收集測試報告等。
  21. verify:驗證項目是否滿足質量標準等,比如檢查測試結果是否符合要求、代碼是否滿足代碼規范等。
  22. install:將項目的包安裝到本地倉庫,以便其他項目可以依賴它。
  23. deploy:將項目的包部署到遠程倉庫,供其他團隊或項目使用。

其中最重要的過程有:initialize(初始化),compile(編譯源代碼),test(運行測試),package(打包項目),install(安裝項目到本地倉庫)

3. site生命周期

主要用于生成項目的站點文檔,為項目提供文檔支持和展示,有以下階段:

  • pre-site:在生成站點前執行一些準備工作,比如檢查站點生成的配置是否正確等。
  • site:生成項目的站點文檔,會根據項目中的文檔資源和配置生成 HTML 等格式的文檔頁面,包括項目的介紹、API 文檔、測試報告等內容。
  • post-site:在站點生成后執行一些后續工作,比如對生成的站點文件進行優化、壓縮等操作。
  • site-deploy:將生成的站點部署到服務器上,以便團隊成員和其他用戶可以通過網絡訪問項目的文檔站點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897251.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897251.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897251.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于 Docker 的跨平臺鏡像構建與增量更新實戰指南

引言&#xff1a;破解容器化兩大核心問題 在實際開發中&#xff0c;我們常常面臨兩個棘手問題&#xff1a; 跨平臺兼容性&#xff1a;如何在Windows平臺開發的鏡像&#xff0c;無縫運行在 ARM64 服務器&#xff1f;更新效率低下&#xff1a;每次代碼調整都要重新安裝全部依賴…

支付通道開通對接一般需要多少錢

不少老板都想開通AIP線上接口&#xff0c;但是不知道這個成本到底是多少? 其實目前第三方支付公司對外提供了標準的線上接入技術方案&#xff0c;一般以API、SDK等形式。因此&#xff0c;商戶在完成簽約審核后&#xff0c;可以順利拿到技術的密鑰&#xff0c;正常調用第三方支…

什么是 spring 的循環依賴?

什么是 spring 的循環依賴&#xff1f; 首先&#xff0c;認識一下什么是循環依賴&#xff0c;舉個例子&#xff1a;A 對象被 Spring 管理&#xff0c;并且引入的 B 對象&#xff0c;同樣的 B 對象也被 Spring 管理&#xff0c;并且也引入的 A 對象。這種相互被引用的情況&#…

thrift軟件、.thrif文件和thrift協議是什么關系,有什么用

Thrift軟件、.thrift文件和Thrift協議是Apache Thrift框架的三個核心組成部分&#xff0c;它們協同實現跨語言服務的高效開發與通信。以下是三者關系及作用的詳細解析&#xff1a; 一、核心組件關系 1. Thrift軟件&#xff08;框架&#xff09; ? 定位&#xff1a;Apache Th…

STM32旋轉編碼器驅動詳解:方向判斷、卡死處理與代碼分析 | 零基礎入門STM32第四十八步

主題內容教學目的/擴展視頻旋轉編碼器電路原理&#xff0c;跳線設置&#xff0c;結構分析。驅動程序與調用。熟悉電路和驅動程序。 師從洋桃電子&#xff0c;杜洋老師 &#x1f4d1;文章目錄 一、旋轉編碼器原理與驅動結構1.1 旋轉編碼器工作原理1.2 驅動程序結構 二、方向判斷…

elementplus的cascader級聯選擇器在懶加載且多選時的一些問題分析

1. 背景 在之前做的一個項目中使用到了element的級聯選擇器&#xff0c;并且是需要懶加載、多選、父子不關聯等等&#xff0c;在選的時候當然沒問題&#xff0c;但是回顯的時候就會回顯不出來&#xff0c;相信大部分伙伴都遇到過這個問題。我在以前出過一篇文章寫過關于級聯選…

【Python運維】用Python自動化AWS資源管理:利用boto3實現高效管理S3桶和EC2實例

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 隨著云計算的普及,AWS(Amazon Web Services)已經成為許多企業和開發者首選的云平臺。為了提高工作效率,自動化管理AWS資源成為了一個熱…

淘寶關鍵字搜索接口爬蟲測試實戰指南

在電商數據分析和市場研究中&#xff0c;通過關鍵字搜索獲取淘寶商品信息是一項重要任務。淘寶開放平臺提供了 item_search 接口&#xff0c;允許開發者通過關鍵字搜索商品&#xff0c;并獲取商品列表及相關信息。本文將詳細介紹如何設計并測試一個基于該接口的爬蟲程序&#x…

【Linux實踐系列】:用c語言實現一個shell外殼程序

&#x1f525;本文專欄&#xff1a;Linux Linux實踐項目 &#x1f338;博主主頁&#xff1a;努力努力再努力wz 那么今天我們就要進入Linux的實踐環節&#xff0c;那么我們之前學習了進程控制相關的幾個知識點&#xff0c;比如進程的終止以及進程的等待和進程的替換&#xff0c;…

?算法OJ?N-皇后問題 II【回溯剪枝】(C++實現)N-Queens II

?算法OJ?N-皇后問題【回溯剪枝】&#xff08;C實現&#xff09;N-Queens 問題描述 The n-queens puzzle is the problem of placing n n n queens on an n n n \times n nn chessboard such that no two queens attack each other. Given an integer n, return the num…

03.06 QT

一、使用QSlider設計一個進度條&#xff0c;并讓其通過線程自己動起來 程序代碼&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QThread> #include "mythread.h"QT_BEGIN_NAMESPACE namespace Ui {…

Spring WebFlux 中 WebSocket 使用 DataBuffer 的注意事項

以下是修改后的完整文檔&#xff0c;包含在多個多線程環境中使用 retain() 和 release() 方法的示例&#xff0c;且確保在 finally 塊中調用 release()&#xff1a; 在 Spring WebFlux 中&#xff0c;WebSocketMessage 主要用于表示 WebSocket 的消息載體&#xff0c;其中 getP…

【CSS】Tailwind CSS 與傳統 CSS:設計理念與使用場景對比

1. 開發方式 1.1 傳統 CSS 手寫 CSS&#xff1a;你需要手動編寫 CSS 規則&#xff0c;定義類名、ID 或元素選擇器&#xff0c;并為每個元素編寫樣式。 分離式開發&#xff1a;HTML 和 CSS 通常是分離的&#xff0c;HTML 中通過類名或 ID 引用 CSS 文件中的樣式。 示例&#…

2025華為OD機試真題E卷 - 螺旋數字矩陣【Java】

題目描述 疫情期間,小明隔離在家,百無聊賴,在紙上寫數字玩。他發明了一種寫法:給出數字個數 n (0 < n ≤ 999)和行數 m(0 < m ≤ 999),從左上角的 1 開始,按照順時針螺旋向內寫方式,依次寫出2,3,…,n,最終形成一個 m 行矩陣。小明對這個矩陣有些要求: 1、…

地下井室可燃氣體監測裝置:守護地下安全,防患于未“燃”!

在城市的地下&#xff0c;隱藏著無數的燃氣管道和井室&#xff0c;它們是城市基礎設施建設的重要部分&#xff0c;燃氣的使用&#xff0c;給大家的生活提供了極大的便利。在便利生活的背后&#xff0c;也存在潛在的城市安全隱患。 近年來&#xff0c;地下井室可燃氣體泄漏事故…

【使用hexo模板創建個人博客網站】

使用hexo模板創建個人博客網站 環境準備node安裝hexo安裝ssh配置 使用hexo命令搭建個人博客網站hexo命令 部署到github創建倉庫修改_config.yml文件 編寫博客主題擴展 環境準備 node安裝 進入node官網安裝node.js 使用node -v檢查是否安裝成功 安裝成功后應該出現如上界面 …

C# OPC DA獲取DCS數據(提前配置DCOM)

OPC DA配置操作手冊 配置完成后&#xff0c;訪問遠程ip&#xff0c;就能獲取到服務 C#使用Interop.OPCAutomation采集OPC DA數據&#xff0c;支持訂閱&#xff08;數據變化&#xff09;、單個讀取、單個寫入、斷線重連

發行思考:全球熱銷榜的頻繁變動

幾點雜感&#xff1a; 1、單機游戲銷量與在線人數的衰退是劇烈的&#xff0c;有明顯的周期性&#xff0c;而在線游戲則穩定很多。 如去年的某明星游戲&#xff0c;最高200多萬在線&#xff0c;如今在線人數是48名&#xff0c;3萬多。 而近期熱門的是MH&#xff0c;在線人數8…

Unity自定義區域UI滑動事件

自定義區域UI滑動事件 介紹制作1.創建一個Image2.創建腳本 總結 介紹 一提到滑動事件聯想到有太多的插件了比如EastTouchBundle&#xff0c;今天想單純通過UI去做一個滑動事件而不是基于Box2d或者Box去做滑動事件。 制作 1.創建一個Image 2.創建腳本 using UnityEngine; us…

taosd 寫入與查詢場景下壓縮解壓及加密解密的 CPU 占用分析

在當今大數據時代&#xff0c;時序數據庫的應用越來越廣泛&#xff0c;尤其是在物聯網、工業監控、金融分析等領域。TDengine 作為一款高性能的時序數據庫&#xff0c;憑借獨特的存儲架構和高效的壓縮算法&#xff0c;在存儲和查詢效率上表現出色。然而&#xff0c;隨著數據規模…