← 返回首页
Maven的四大功能和生命周期
发表时间:2020-02-13 00:00:41
讲解Maven的四大功能和生命周期。

作为 Apache 组织中的一个颇为成功的开源项目, Maven 主要服务于基于 java 平台的项目构建, 依赖管理和项目信息管理。 无论是小型的开源类库项目, 还是大型的企业级应用; 无论是传统的瀑布式开发, 还是流行的敏捷开发, Maven 都能大显身手。Maven有依赖管理、模块管理、插件管理和部署管理四大核心功能。

1.依赖管理

例子:依赖service

<dependencies>
  <dependency>
          <groupId>com.shsxt</groupId>
          <artifactId>wc-service</artifactId>
          <version>0.0.1-SNAPSHOT</version>
  </dependency>
</dependencies>

平常需要的库;在这里找:http://mvnrepository.com/

然后复制到pom.xml文件中,记得写在project便签和dependencies中,保存就依赖了

groupId:项目隶属的实际项目-公司名称 artifactId:模块-项目名 version:项目当前所处的版本

2.模块管理

在 Maven 中需要定义一个 parent POM 作为一组 module 的聚合 POM。在该 POM 中可以使用 标签来定义一组子模块。 parent POM 不会有什么实际构建产出。 而 parent POM 中的 build 配置以及依赖配置都会自动继承给子 module。

例如子模块的pom.xml配置如下:

<modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.hbgc</groupId>
        <artifactId>base</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!--父模块的pom.xml位置-->
        <relativePath>../base/pom.xml</relativePath>
    </parent>
    <groupId>com.hbgc</groupId>
    <artifactId>springbootdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbootdemo</name>
    <description>Demo project for Spring Boot</description>

3.插件管理

添加插件,类似于添加依赖, 通过 GAV 来指定插件, 其中对于maven官方插件, 可以省略 GroupId。例如:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>
    </plugins>
</build>

与控制依赖版本类似, 可以通过引用属性和 pluginManagement 对项目中的插件版本进行统一管理。注意 pluginManagement 元素需要放在 build 元素之下。

例如:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

4.部署管理

在idea中,我们可以打开maven project视图。在maven的生命周期列表中进行测试、打包和安装。

5.生命周期

Maven的生命周期:

maven的生命周期是抽象的,它本身并不做任何的工作。实际的工作都交由"插件"来完成。

maven的每个构建步骤都可以绑定一个或多个插件行为,而且maven为大多数的构建步骤编写并绑定了默认插件。

三套生命周期:clean、default、site

clean: 主要目的是清理项目

default:定义了真正构建时所需要执行的所有步骤,它是生命周期中最核心的部分

site生命周期: 建立和发布项目站点,Maven能够基于POM所包含的信息,自动生成站点

Maven的生命周期的各个阶段是前后阶段相互依赖的,当用户调用clean的时候,pre-clean 和 clean阶段会顺序执行,不会碰触default的任何阶段。