Maven04_分模块构建工程

发布时间:2022-06-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Maven04_分模块构建工程脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、模块继承图

  

Maven04_分模块构建工程

 

 

2、继承和聚合的理解

  继承:

    继承的作用是消除重复。一个完整的项目,将三层模型dao、service、controller分开创建为独立的模块,那么对于每一层的pom文件,

  都将会有重复的内容出现。比如版本编译、版本锁定等。可以将这些重复的抽取配置到父工程的pom文件中,这样子工程就可以直接使用父工程

  定义的东西,这就是maven父子工程的继承。

  聚合:

    项目的开发是分组分模块的,每一个模块开发完成后,需要运行工程,需要将每个模块聚合到一起运行。比如dao、service、controller最后

  需要聚合到一起打包为一个war包

3、示例

  1)maven-parent父模块

    创建父工程

    

Maven04_分模块构建工程

 

 

     由于父工程只是提供子工程的重复配置,所以可以只保留一个pom文件即可,这里需要注意打包的方式

    

Maven04_分模块构建工程

 

 

     将父工程发布到本地仓库,方便子模块继承

    

Maven04_分模块构建工程

 

 

   2)maven-dao子模块

    创建dao子模块,父工程右键创建maven模块

    

Maven04_分模块构建工程

 

 

     由于dao层不需要页面的交互,所以一个普通java工程即可,也不需要骨架的选择

    

Maven04_分模块构建工程

 

 

     打包方式为jar包

    

Maven04_分模块构建工程

 

 

     将dao模块发布到本地仓库,便于service调用

  3)maven-service模块

    整体步骤和dao层一致

  4)maven-controller模块

    创建controller模块,

    

Maven04_分模块构建工程

 

 

     创建java和resources文件

    

Maven04_分模块构建工程

 

 

     打包方式

    

Maven04_分模块构建工程

 

 

   注意:如果父子工程中都配置了相同的插件,运行的端口和路径都以子模块为准,比如tomcat插件

4、依赖范围对传递依赖的影响

  1)问题描述

    比如上述的service模块和dao模块,service模块依赖了dao模块。dao中依赖了Junit,但是当我们在service模块中进行单元测试的时候提示没有junit的jar包。

  我们的service模块依赖了dao模块,Junit不应该传递过来吗?

  2)依赖范围对传递依赖的影响

    

Maven04_分模块构建工程

 

     解释:

      ①左侧的直接依赖就是dao对junit的依赖,因为dao模块中直接引入了junit的jar包。

      ②上面的传递依赖就是service对junit的依赖,因为service需要的junit是靠dao模块的传递依赖。

      ③中间便是依赖范围对传递依赖的影响。

        例如:dao模块中junit的依赖范围是test,即最左侧为test。service模块对junit的依赖也是test,即最上面为test

      那么传递依赖就会丢失。

    解决:

      遇到这种传递丢失的情况,我们通常的解决方案是在本工程中直接添加依赖。

    比如,直接在service模块添加junit的jar包引入。

5、运行一个pom父子工程的方式

  方式一:

    在父工程中配置tomcat插件,然后直接运行父工程(tomcat:run),会自动聚合并执行

  方式二:

    在controller层配置tomcat插件,运行web层。但是注意这里必须把它的直接依赖和间接依赖全部安装到本地仓库,否则会找不到对应jar包

  方式三:

    IDEA中配置tomcat。这里也需要安装所有模块到本地仓库。

  推荐方式:

    推荐方法 2,如果子工程都在本地,采用方法 2则不需要子工程修改就立即发布到本地仓库, 父工程会自动聚合并使用最新代码执行。

        

 

    

脚本宝典总结

以上是脚本宝典为你收集整理的Maven04_分模块构建工程全部内容,希望文章能够帮你解决Maven04_分模块构建工程所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: