Maven多模块结构搭建

        现在Maven成了项目中必不可少的项目管理工具,  同时项目也开始模块化, 各个模块使用maven管理,  笔者因为要向一个系统内集成Activiti工作流引擎,  为了尽量减少代码的侵入性, 我们决定把Activiti 作为一个模块嵌入进去.

       模块化管理的内幕: 模块化管理的最终目的是将逻辑关联不大的模块分开管理, 在编译的时候单独编译打包, 最终把打成的包添加到依赖这个模块的模块,  比如有A, B两个包 B模块依赖于A 模块, 那么编译的时候 就会把A 模块打包放到 B 模块中从而和 B模块一起打包成一个新的模块, 这也标志 B 模块可以使用 A 的包或则类, 但是反过来就不行了,  这样的话项目最终一定会有一个根模块, 它会有所有模块, 而且没有模块 依赖于它, 作为项目最终运行的模块. 简单图示

        `

        如图, A代表这是一个多模块组合的项目, 其中蓝色线条代表项目的父子关系. 黑色线条表示模块的依赖关系,  如图所示 web 依赖于 B1, B5,  而B5依赖于B3, 最后打包会成为


mav中 pom 文件的写法


在 A 中  使用 


定义自己的信息, 同时声明各个子模块

<groupId>com.hand</groupId>
<artifactId>A</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>A</name>

...
<modules>
   <module>B5</module>
   <module>B3</module>
   <module>B1</module>
   <module>web</module>
</modules>

在B3,和B1 中, 因为这两个模块没有依赖其他模块

    1,声明父模块, 定义自己信息, 一般除了 web最终模块其余的打包方式都是 jar

<parent>
   <groupId>com.hand</groupId>
   <artifactId>A</artifactId>
   <version>1.0</version>
   <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>B3</artifactId>
<packaging>jar</packaging>
<name>Bak</name>
<version>1.0</version>

在 B5中依赖了B3 模块,  所以除了B1,B3 要加的信息之外还要添加依赖

<dependencies>
   <dependency>
      <groupId>com.hand</groupId>
      <artifactId>B</artifactId>
      <version>1.0</version>
   </dependency>
</dependencies>

在最后的web, 和 B5 基本一致, 区别就是我们要把它打包成 war 包

<artifactId>web</artifactId>
<packaging>war</packaging>
<name>Web</name>
<version>1.0</version>


这样maven中模块依赖已完成了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值