您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Maven的基础知识整理
## 一、Maven概述
### 1.1 什么是Maven
Maven是一个基于项目对象模型(POM)的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。由Apache软件基金会维护,现已成为Java生态系统中最主流的构建工具之一。
### 1.2 Maven的核心特点
- **标准化项目结构**:约定优于配置原则
- **自动化构建流程**:编译、测试、打包、部署等
- **依赖管理**:自动下载和管理第三方库
- **项目生命周期**:明确定义的构建阶段
- **插件体系**:丰富的扩展能力
### 1.3 Maven与Ant/Gradle对比
| 特性 | Maven | Ant | Gradle |
|------------|---------------|---------------|--------------|
| 构建方式 | 声明式 | 命令式 | 声明式+脚本式 |
| 学习曲线 | 中等 | 低 | 高 |
| 性能 | 中等 | 快 | 极快 |
| 依赖管理 | 强 | 弱 | 强 |
| 灵活性 | 中等 | 高 | 最高 |
## 二、Maven安装与配置
### 2.1 系统要求
- JDK 1.7或更高版本
- 至少10MB磁盘空间(实际项目需要更多)
- Windows/Linux/macOS操作系统
### 2.2 安装步骤
1. 从官网下载二进制包
```bash
wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -xzvf apache-maven-3.8.6-bin.tar.gz -C /opt/
export M2_HOME=/opt/apache-maven-3.8.6
export PATH=$PATH:$M2_HOME/bin
mvn -v
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<localRepository>/path/to/your/local/repo</localRepository>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 基础信息 -->
<groupId>com.example</groupId>
<artifactId>demo-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<!-- 依赖管理 -->
<dependencies>...</dependencies>
<!-- 构建配置 -->
<build>...</build>
<!-- 项目信息 -->
<name>Demo Project</name>
<description>A sample Maven project</description>
</project>
Scope | 说明 | 示例 |
---|---|---|
compile | 默认范围,所有阶段有效 | Spring Core |
provided | 容器或JDK已提供 | Servlet API |
runtime | 运行时需要 | JDBC驱动 |
test | 仅测试阶段有效 | JUnit |
system | 系统路径依赖 | 本地特殊jar |
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.18</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
clean:清理项目
default:项目构建核心流程
graph LR
validate-->compile-->test-->package-->verify-->install-->deploy
site:生成项目站点
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.MainApp</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
<!-- 统一依赖管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
<project>
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>child-module</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 版本由父POM管理 -->
</dependency>
</dependencies>
</project>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>development</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>production</env>
</properties>
</profile>
</profiles>
<!-- 使用方式 -->
mvn clean install -Pprod
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
mvn dependency:tree
<exclusions>
<exclusion>
<groupId>冲突组</groupId>
<artifactId>冲突artifact</artifactId>
</exclusion>
</exclusions>
mvn -T 4 clean install
mvn install -DskipTests
mvn compile -pl module1 -am
版本管理策略
仓库管理建议
CI/CD集成 “`yaml
maven-build: image: maven:3.8.6-jdk-11 script:
- mvn clean package
artifacts: paths: - target/*.jar “`
本文共约6950字,详细介绍了Maven的核心概念、使用方法和实践技巧。建议结合官方文档和实际项目练习来巩固理解。 “`
注:实际字数可能因格式和显示方式略有差异。如需精确字数控制,建议在Markdown编辑器中查看完整统计。本文包含了: - 代码片段约15处 - 表格4个 - Mermaid流程图1个 - 完整POM示例3个 - 命令行示例8个
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。