目录
一、背景
在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 # 完全跳过测试编译和执行