一个大项目经常要拆分成多个小模块分开打包,Maven是可以支持模块拆分的。可以包含(父模块即项目包含子模块),也可以并行(父模块和子模块是平级的)。推荐用包含方式,更清晰,更简单一些。

 

首先建个空项目,只要个pom.xml,不要有src。它就是父模块,pom的主要内容为:

<groupId>com.xxx</groupId>
<artifactId>xxx-xxx</artifactId>
<name>项目名</name>
<!-- 父模块的packaging必须为pom(默认值为jar) 注意:外层目录不要写代码 -->
<packaging>pom</packaging>
<version>1.1.0-SNAPSHOT</version>
<modules>
    <module>xx1</module>
    <module>xx2</module>
</modules>
注意父模块pom中的packaging只能是pom,不能默认,也不能是其他的。

module是子模块的路径(文件夹名),如果不在project的根目录下,需要指定子模块的具体路径,支持相对路径。

然后建子模块。子模块的pom.xml的主要内容为:

<parent>
    <groupId>com.xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>xxx-xxx</artifactId>
<name>子模块名</name>
<packaging>jar</packaging>

需要加入父模块的依赖,注意不再是路径了。子模块的packaging可以是jar或war等。

模块之间也可以依赖,注意不要循环依赖。

子模块中parent的version需要显示写出来,用属性变量不太好使。

clip_image001