目錄
一、背景
二、JAVA項目與Maven的關系
2.1標準java項目
2.2 maven
2.2.1?下載maven
1、下載
2、配置環境
2.2.2?setting.xml
1、配置settings.xml
2、IDEA配置maven
一、背景
在java項目中,新手小白很有可能看不懂整體的目錄結構,以及每個文件都是用來干嘛的。而且經常會遇到這種場景:配置settings.xml
,依賴沖突等,依賴下載失敗,搞得大家焦頭亂額,這些場景都和maven息息相關。
二、JAVA項目與Maven的關系
2.1標準java項目
一個標準的 Java 項目通常由以下目錄和文件組成,并使用 Maven 進行依賴管理和構建:
項目根目錄/ ├── pom.xml # 項目配置文件 ├── src/ │ ├── main/ │ │ ├── java/ # 主代碼 │ │ └── resources/ # 主資源文件 │ └── test/ │ ├── java/ # 測試代碼 │ └── resources/ # 測試資源文件 └── target/ # 編譯輸出目錄
(1)target
- Maven 構建后自動生成的目錄,包含:
classes/
?→ 編譯后的?.class
?文件test-classes/
?→ 測試代碼編譯后的?.class
?文件my-java-project-1.0.0.jar
?→ 打包后的 JAR 文件(如果是 Web 項目,可能是?.war
)
(2)
pom.xml
- Maven 的核心配置文件,Maven 會根據?
pom.xml
?自動處理依賴和構建流程。
- 項目基本信息(
groupId
,?artifactId
,?version
):定義項目名稱(artifactId
)、組織(groupId
)、版本(version
)等- 依賴(
dependencies
):聲明項目所需的第三方庫(如 Spring、JUnit),Maven 會自動下載并管理依賴。- 構建方式(
build
):指定源碼目錄、編譯選項、打包方式(JAR/WAR)等。- 插件(
plugins
):配置 Maven 插件(如編譯器插件、測試插件、打包插件)。
2.2 maven
Maven是Java項目的構建管理工具,類似于前端的npm、Python的pip,主要用于:
- 依賴管理?- 自動下載和管理第三方庫
- 項目構建?- 編譯、測試、打包
- 項目結構標準化?- 統一的目錄結構
2.2.1?下載maven
1、下載
maven3的下載地址:Index of /dist/maven/maven-3(可以選自己需要的版本)
我是在這個網址下載3.8.3:
Index of /dist/maven/maven-3/3.8.3/binaries
將包放入指定目錄并解壓:
tar -zxvf apache-maven-3.6.3-bin.tar.gz
我建在這個目錄下:/Users/yanhan/Documents/yanhan/maven,按照自己的需求放maven位置
2、配置環境
vim ~/.bash_profile
export MAVEN_HOME=/Users/yanhan/Documents/yanhan/maven/apache-maven-3.6.3/bi n export PATH=$PATH:$MAVEN_HOME/bin export PATH=$MAVEN_HOME:$PATH
保存后輸入指令激活
source ~/.bash_profile
安裝成功,并查看
mvn -v echo $MAVEN_HOME
成功
2.2.2?setting.xml
settings.xml 是 Maven 的核心配置文件之一,用于定義 全局或用戶級別的 Maven 運行環境,包括倉庫地址、代理服務器、認證信息等。它不直接參與項目構建,而是為 Maven 工具本身提供配置支持。
1、配置settings.xml
- 找到 settings.xml 文件,位置應該在:${MAVEN_HOME}/conf/settings.xml
- MAVEN_HOME 是 Maven 的安裝目錄(例如:/usr/local/apache-maven-3.8.6 或 C:\Program Files\apache-maven-3.8.6)。
- 直接替換即可
配置好settings.xml后,IDEA的maven并不是我們配置好的這個,需要再給IDEA配置下maven
2、IDEA配置maven
- 3號紅框修改為前面我們配置好的setting的位置,以及maven的homepath
- local repository按照個人的需求自行替換,不換也ok
2.2.3 常用指令
常用指令精簡表:
命令 | 作用 |
---|---|
mvn clean | 清理?target/ ?目錄 |
mvn compile | 編譯?src/main/java ?代碼 |
mvn test | 運行?src/test/java ?測試 |
mvn package | 打包(生成 JAR/WAR) |
mvn install | 打包并安裝到本地 Maven 倉庫 |
mvn deploy | 發布到遠程倉庫(如 Nexus) |
(1)基本指令
1. 清理和編譯
mvn clean # 清理target目錄
mvn compile # 編譯主代碼 (src/main/)
mvn test-compile # 編譯測試代碼 (src/test/)
mvn clean compile # 清理后編譯2. 測試相關
mvn test # 運行所有測試
mvn test -Dtest=TestClass # 運行指定測試類
mvn test -Dgroups=P0 # 運行指定分組的測試
mvn test -DskipTests # 跳過測試3. 打包和安裝
mvn package # 打包成JAR/WAR
mvn install # 安裝到本地倉庫
mvn deploy # 部署到遠程倉庫
(2)日常開發可能涉及
# 1. 項目初始化
mvn clean compile # 編譯項目,檢查語法錯誤# 2. 運行測試
mvn test # 運行所有測試
mvn test -pl tsp_group_api # 只運行指定模塊的測試
mvn test -Dtest=TestV1Groupbuy # 運行指定測試類# 3. 環境切換
mvn test -Ptest # 使用test環境配置
mvn test -Pprod # 使用prod環境配置# 4. 分組測試
mvn test -Dgroups=P0 # 運行P0級別測試
mvn test -Dgroups=OFFLINE # 運行離線測試
mvn test -Dgroups="P0,OFFLINE" # 運行多個分組
(3)調試和排錯
# 詳細輸出
mvn test -X # 顯示詳細調試信息
mvn test -e # 顯示錯誤堆棧# 依賴分析
mvn dependency:tree # 查看依賴樹
mvn dependency:analyze # 分析依賴問題# 跳過測試
mvn package -DskipTests # 打包時跳過測試
mvn install -Dmaven.test.skip=true # 完全跳過測試編譯和執行