Maven环境搭建

Maven环境搭建与项目实战

环境准备:JDK和Maven安装

1. 安装JDK

Maven依赖于Java环境,首先需要安装JDK 8或更高版本:

Windows系统

  1. 从Oracle官网或AdoptOpenJDK下载JDK安装包

  2. 运行安装程序,记下安装路径(如:C:\Program Files\Java\jdk-17.0.1

  3. 配置环境变量:

    shell 复制代码
    JAVA_HOME = C:\Program Files\Java\jdk-17.0.1
    PATH = %JAVA_HOME%\bin;%PATH%

Linux/macOS系统

bash 复制代码
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install openjdk-17-jdk

# CentOS/RHEL
sudo yum install java-17-openjdk-devel

# macOS (使用Homebrew)
brew install openjdk@17

# 验证安装
java -version
javac -version

2. 安装Maven

下载和安装

  1. 访问Maven官网下载最新版本
  2. 解压到指定目录(如:C:\Program Files\apache-maven-3.9.4

配置环境变量

shell 复制代码
# Windows系统
M2_HOME = C:\Program Files\apache-maven-3.9.4
MAVEN_HOME = %M2_HOME%
PATH = %MAVEN_HOME%\bin;%PATH%

# Linux/macOS系统
export MAVEN_HOME=/opt/apache-maven-3.9.4
export PATH=$MAVEN_HOME/bin:$PATH

验证安装

bash 复制代码
mvn -v

应该看到Maven版本、Java版本等信息。

优化配置:修改settings.xml

找到配置文件

Maven配置文件位于%MAVEN_HOME%/conf/settings.xml,推荐复制到用户目录:

  • Windows: C:\Users<用户名>.m2\settings.xml
  • Linux/macOS: ~/.m2/settings.xml

配置镜像加速(国内用户必做)

xml 复制代码
<mirrors>
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>

其他实用配置

xml 复制代码
<!-- 修改本地仓库路径 -->
<localRepository>D:\maven-repository</localRepository>

<!-- 配置JDK版本 -->
<profiles>
    <profile>
        <id>jdk-17</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>17</jdk>
        </activation>
        <properties>
            <maven.compiler.source>17</maven.compiler.source>
            <maven.compiler.target>17</maven.compiler.target>
            <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
        </properties>
    </profile>
</profiles>

创建第一个Maven项目

使用Archetype生成项目骨架

bash 复制代码
# 交互式创建项目
mvn archetype:generate -DgroupId=com.example -DartifactId=my-first-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

# 常用参数说明:
# -DgroupId:组织或公司标识(包名的前缀)
# -DartifactId:项目名称
# -DarchetypeArtifactId:项目模板类型

项目结构解读

生成的项目结构如下:

text 复制代码
my-first-app/
├── src/
│   ├── main/
│   │   └── java/
│   │       └── com/
│   │           └── example/
│   │               └── App.java
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   └── AppTest.java
└── pom.xml

为什么是这样的结构? - 这就是"约定优于配置"的体现:

  • src/main/java:主要源代码目录(约定)
  • src/test/java:测试代码目录(约定)
  • src/main/resources:资源文件目录(约定)
  • src/test/resources:测试资源目录(约定)
  • target/:编译输出目录(约定)

Maven默认知道去哪里找代码和资源,无需额外配置。

核心Maven命令实战

1. 编译项目

bash 复制代码
mvn compile
  • 编译main目录下的Java源代码
  • 编译结果输出到target/classes目录
  • 首次运行会下载相关依赖包

2. 运行测试

bash 复制代码
mvn test
  • 编译并运行所有测试用例
  • 测试报告生成在target/surefire-reports目录
  • 如果测试失败,构建会终止

3. 打包项目

bash 复制代码
mvn package
  • 执行编译、测试,然后打包
  • 生成JAR文件在target目录(如:my-first-app-1.0-SNAPSHOT.jar
  • 打包类型由pom.xml中的<packaging>标签指定

4. 清理项目

bash 复制代码
mvn clean
  • 删除target目录中的所有构建产物
  • 保持工作区整洁

5. 安装到本地仓库

bash 复制代码
mvn install
  • 执行编译、测试、打包,然后安装到本地Maven仓库
  • 其他项目可以引用这个项目的jar包

实战示例:完整流程

bash 复制代码
# 1. 创建项目
mvn archetype:generate -DgroupId=com.example -DartifactId=demo-app -DinteractiveMode=false

# 2. 进入项目目录
cd demo-app

# 3. 编译项目
mvn compile

# 4. 运行测试
mvn test

# 5. 打包项目
mvn package

# 6. 查看构建结果
ls target/
# 应该看到demo-app-1.0-SNAPSHOT.jar文件

# 7. 清理项目
mvn clean

常见问题解决

1. 下载速度慢

  • 确认已配置阿里云镜像
  • 检查网络连接

2. 编译错误

bash 复制代码
# 如果出现版本错误,可以指定JDK版本
mvn compile -Dmaven.compiler.source=17 -Dmaven.compiler.target=17

3. 依赖下载失败

bash 复制代码
# 清理失败的下载
mvn dependency:purge-local-repository

# 强制重新下载
mvn -U clean compile

总结

通过本章学习,你已经掌握了:

  1. Maven环境的安装和配置
  2. settings.xml的优化配置(镜像加速)
  3. 使用archetype快速创建项目
  4. Maven的标准项目结构
  5. 核心Maven命令的使用

现在你已经具备了使用Maven进行Java项目开发的基础能力。在下一章中,我们将深入解析pom.xml文件的详细配置,学习依赖管理和项目配置的高级技巧。

提示:建议多练习这些命令,熟悉Maven的工作流程,这是后续学习的基础。

相关推荐
我是天龙_绍2 小时前
Whisper 通过 mp3输出中文
后端
我是天龙_绍2 小时前
项目根目录有requirements.txt 如何安装
后端
bobz9652 小时前
MPLS VPN | SRV6 TE 安全隔离路由技术
后端
bobz9652 小时前
AMD 正式停更 AMDVLK 驱动: 有格局的厂商和社区会是一致的
后端
拳打南山敬老院2 小时前
漫谈 MCP 构建之概念篇
前端·后端·aigc
每天进步一点_JL3 小时前
JVM 类加载:双亲委派机制
java·后端
用户298698530143 小时前
Java HTML 转 Word 完整指南
java·后端
J2K4 小时前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端
EMQX4 小时前
ESP32 + MCP over MQTT:通过大模型控制智能硬件设备
后端·mcp