<packaging></packaging>
标签打包方式有三种,pom,war,jar,一般在父模块打包方式选pom,子模块再指定相应的war或者jar.
父工程构建
子工程构建
1、在父模块点击new module
2、next下一步即可
在这里可以看出子模块清晰地标出了丛属的parent模块
3、子模块的pom文件
注意到,其默认打包方式为jar,但是我们一般喜欢显示的声明出来。
4、此时可以查看父模块的pom文件,发现发生了变化,父模块的pom文件多了个
<modules> </modules>
标签,并且所有的子模块都在这个标签中出现。
5、子工程之间可以相互依赖,如何做到这一点呢,其实很简单,比如我们再创建一个子模块叫foodie-dev-pojo,并且在他的pom文件里加入依赖,这样,两个子工程就做到相互依赖了。
<dependencies>
<dependency>
<groupId>com.imooc</groupId>
<artifactId>foodie-dev-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
6、接下来我们又创建了mapper模块,用以存放与mybatis交互的一些mapper.jar等,这里需要注意这个子模块要依赖pojo层,原因是一些sql语句需要实体类,因此需添加相关依赖。
<dependencies>
<dependency>
<groupId>com.imooc</groupId>
<artifactId>foodie-dev-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
子模块的依赖关系如下
mapper-->pojo-->common,因此mapper也可以使用common中的相应方法。
7、接下来是service层,同理这一部分需要依赖mapper层。
<dependencies>
<dependency>
<groupId>com.imooc</groupId>
<artifactId>foodie-dev-mapper</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
依赖关系如下: service-->mapper-->pojo-->common
7、最后一个子模块是api模块,也就是controller层
api层依赖了service,也可以调用mapper层,但是原则上不允许之间调mapepr层,只允许调用service层。
8、最后需要注意的是,我们构建完聚合工程后,一定要安装,所谓的安装就是在maven的root项目的lifecycle里双击install命令。
安装完成控制台会出现,build success提示。
总结
1、聚合工程可以分为顶级项目(顶级工程、父工程)与子工程,这两者的关系其实就是父子继承的关系,子工程在maven里称之为模块(module),模块之间是平级的,是可以相互依赖的。
2、子模块可以使用顶级工程里的所有资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)
3、一个顶级工程是可以由多个不同的子工程共同组合而成。这就构成了一个可以运行的项目。