Maven是管理Java项目根据,apache旗下一个东西

  • 当前市场上的主流是Maven

1. Maven的基本概念

  • 构建生命周期: Maven通过一组预定义的构建生命周期来管理项目的构建过程。最常用的生命周期有三个:

    • clean: 清理项目的输出目录。
    • default: 执行项目的构建过程,包括编译、测试、打包等。
    • site: 生成项目的文档。

      每个生命周期由多个阶段组成,Maven会按照一定的顺序执行这些阶段。

  • 插件和目标: Maven通过插件来扩展功能,每个插件包含若干个目标(goals)。比如,编译Java代码的插件是maven-compiler-plugin,它的目标是compile

  • 依赖管理: Maven使用POM文件(pom.xml)来管理项目的依赖、构建配置等信息。每个依赖都由以下几部分定义:

    • Group ID: 依赖所属的组。
    • Artifact ID: 依赖的唯一标识符。
    • Version: 依赖的版本。
  • 仓库: Maven通过仓库来存储和获取依赖项。可以是本地仓库、中央仓库或私有仓库。

2. Maven的优点

  1. 方便快捷的依赖管理

在正常情况下我们要引入jar包需要在主目录下新建一个lib文件,在lib文件内引入下载好的jar包,使用Maven管理后只需要在pom.xml文件内配置对应信息即可让项目自动下载

1
2
3
4
5
6
7
<dependencies>  
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>

自动配置好了commons-io, 直接可以更换版本等,很方便

  1. 标准化的跨平台的项目操作

  2. 统一的项目结构

Eclipse和idea之间的项目不是互通的,但是使用Maven之后,不管用什么工具都可以共享

Maven是一个强大的构建工具,主要用于Java项目的构建、依赖管理、项目管理等。它简化了开发过程,尤其是在处理复杂的项目时。下面是对Maven的一些核心概念和使用的详细讲解:

3. POM文件详解

pom.xml是Maven项目的核心配置文件。它包含了项目的所有信息,如项目版本、依赖、插件等。一个典型的pom.xml文件结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.0</version>
</dependency>
</dependencies>
</project>

Maven的工作原理和配置方法非常强大,通过正确配置pom.xml和使用适当的插件,你可以大大简化构建过程,提高开发效率。

4. Maven 坐标

  • 坐标是资源jar的唯一标识
  • 主要组成
    • groupId: 定义隶属组织名称
    • artifactId: 定义Maven项目名称
    • version: 定义当前版本号
      • SNAPSHOT: 功能不稳定
      • RELEASE: 功能趋于稳定,可以发行(如果没写那就是这个)

5. Maven导入

  • 方式一: File -> Project Structure -> Modules -> Import Module -> 选择maven项目的pom.xml
  • 方式二: maven面板 -> +(Add Maven Project) -> 选择maven的pom.xml

注意,导入的时候建议是先导入到自己的目录下,然后选择xml进行导入

6. Maven使用

  1. 安装Maven: 你可以通过官网下载Maven的二进制文件,然后配置环境变量(MAVEN_HOMEPATH)以便在命令行使用。

  2. 初始化Maven项目: 使用以下命令创建一个新的Maven项目:

    1
    2
    mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    这会生成一个包含pom.xml和默认目录结构(如src/main/java)的Java项目。

  3. 管理依赖: 在pom.xml文件中定义项目的依赖。示例如下:
    使用dependencies, 引入坐标, 如果不知道依赖的坐标信息,可以去MVN坐标搜索中搜索

    1
    2
    3
    4
    5
    6
    7
    <dependencies>
    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
    </dependency>
    </dependencies>
    1. 排除依赖: 指主动断开资源
      1
      2
      3
      4
      5
      6
      <exclusions>
      <exclusion>
      <groupId>排除依赖内的不需要资源</groupId>
      <artifactId>具体东西</artifactId>
      </exclusion>
      </exclusions>

一旦配置依赖发送改变,记得去刷新, 如果引入依赖本地仓库不存在,记得连网

6. Maven的生命周期

生命周期包含三个

  • clean
    • clean
  • default
    • compile
    • test
    • packet
    • install
  • site

同一套项目中,运行后面的项目的时候,前面的项目都会运行(注意同一套哈)

7. Maven常用命令

  • mvn clean: 清理项目,删除target目录。
  • mvn compile: 编译项目。
  • mvn test: 运行单元测试。
  • mvn package: 打包项目,生成可执行的JAR或WAR文件。
  • mvn install: 将项目安装到本地仓库。
  • mvn deploy: 将项目部署到远程仓库。

可以使用命令行,也可以直接点击Maven栏目内对应按钮(lifecycle, 底层调用Plugen中的插件)