Java 系列 - Maven构建多模块项目

创建多模块项目

本文使用命令行进行演示,当然使用 Idea 也是可以的。

  • 1.创建父级项目
  • 2.创建子模块
  • 3.项目打包
  • 4.父级项目管理依赖
  • 5.更新子模块并构建

1. 创建父级项目

> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=parent-project

成功创建父级项目后,打开父级目录中的pom.xml文件并将打包配置添加为pom:

<packaging>pom</packaging>

2. 创建子模块

> cd parent-project
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-1
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-2
> mvn archetype:generate -DgroupId=com.rootmodule -DartifactId=module-3

执行后

  • 1)将会自动在 parent-project 的 pom.xml 中,在 modules 标签部分中添加所有子模块:
<modules>
    <module>module-1</module>
    <module>module-2</module>
    <module>module-3</module>
</modules>
  • 2)将会自动在三个 子模块 的 pom.xml 中,在 parent 标签部分中添加父级模块:
<parent>
  <artifactId>parent-project</artifactId>
  <groupId>com.rootmodule</groupId>
  <version>1.0-SNAPSHOT</version>
</parent>

3. 项目打包

在父项目根目录下,执行:

> mvn package
···

构建完成后,将产生三个单独的jar包。
```bash

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] parent-project                                                     [pom]
[INFO] module-1                                                               [jar]
[INFO] module-2                                                            [jar]
[INFO] module-3                                                             [war]
...
[INFO] Reactor Summary for parent-project 1.0-SNAPSHOT:
[INFO] parent-project ..................................... SUCCESS [  0.272 s]
[INFO] module-1 ............................................... SUCCESS [  2.043 s]
[INFO] module-2 ............................................ SUCCESS [  0.627 s]
[INFO] module-3 ............................................. SUCCESS [  0.572 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

4. 父级项目管理依赖

在父级项目的pom.xml中设置依赖版本配置

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.16</version>
        </dependency>
        //...
    </dependencies>
</dependencyManagement>

在子模块的pom.xml中,只需要依赖此模块,而无需设置依赖包版本号

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

当然父级项目 pom.xml 还有许多配置项供你使用,以便于进行一个以来包的版本统一管理

5.更新子模块并构建

现在我们开发的多半是web应用,那么你可以这样设置子模块的pom.xml,指定其打包方式:

<packaging>war</packaging>

并在子模块的pom.xml中插件列表标签中添加 maven-war-plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.2</version>
            <configuration>
               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

依然是在父项目根目录下,执行打包指令:

mvn clean install

构建完成后,将生成2个jar包和1个war包


[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] parent-project                                                     [pom]
[INFO] module-1                                                               [jar]
[INFO] module-2                                                            [jar]
[INFO] module-3                                                             [war]
//............. 
[INFO] Reactor Summary for parent-project 1.0-SNAPSHOT:
[INFO] 
[INFO] parent-project ..................................... SUCCESS [  0.272 s]
[INFO] module-1 ............................................... SUCCESS [  2.043 s]
[INFO] module-2 ............................................ SUCCESS [  0.627 s]
[INFO] module-3 ............................................. SUCCESS [  1.047 s]
————————————————

在这里插入图片描述


------ 如果文章对你有用,感谢右上角 >>>点赞 | 收藏 <<<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值