maven构建聚合工程

370 阅读2分钟
 <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、一个顶级工程是可以由多个不同的子工程共同组合而成。这就构成了一个可以运行的项目。