maven(二)父子工程

理论基础

工程和模块的区别:

工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就可以说这是一个完整的项目和此项目是工程和模块没有关系。

工程天生只能使用自己内部资源,工程天生是独立的。后天可以和其他工程或模块建立关联关系。
模块天生不是独立的,模块天生是属于父工程的,模块一旦创建,所有父工程的资源都可以使用。

父子工程直接,子模块天生集成父工程,可以使用父工程所有资源。
子模块之间天生是没有任何关系的。

父子工程直接不用建立关系,继承关系是先天的,不需要手动建立。

平级直接的引用叫依赖,依赖不是先天的,依赖是需要后天建立的。

在这里插入图片描述

案例实现

(父模块有骨架——>archetypes是maven.*.webapp,子模块无骨架)

  1. maven02_prent 父模块
    ——>设置为本地仓库—>定义pom.xml
    抽取重复配置,如锁定jar包的版本和设置编译版本等。
    —>将父工程发布到仓库
    install:install

  2. maven_dao子模块
    ——>定义pom.xml
    只添加dao层的pom、mybatis和spring整合的相关依赖
    ——>dao层代码编写
    ——>配置文件applicationContext-dao.xml
    配置只与dao相关
    ——>把dao模块发布到仓库

  3. maven_service子模块
    ——>定义pom.xml
    service层的pom.xml需要继承父模块、依赖dao模块、添加spring相关的依赖
    ——>service层代码编写
    ——>配置文件applicationContext-service.xml
    配置只与service相关
    ——>把service模块发布到仓库

  4. maven_web子模块(有骨架maven.*.webapp)
    ——>定义pom.xml
    web层的pom.xml需要继承父模块、依赖service模块、添加springmvc相关的依赖
    ——>controller层代码编写
    ——>配置文件applicationContext.xml、log4j.properties、springmvc.xml

  5. 运行调试
    1.—在ssm_web工程的pom.xml中配置tomcat插件运行
    运行ssm_web工程它会从本地仓库下载依赖的jar包,所以当ssm_web依赖的jar包内容修改了必须及时发布到本地仓库,比如:ssm_web依赖的ssm_service修改了,需要及时将sm_service发布到本地仓库。
    2.—在父工程的pom.xml中配置tomcat插件运行,自动聚合并执行
    推荐方法2,如果子工程都在本地,采用方法2则不需要子工程修改就立即发布到本地仓库,父工程会自动聚合并使用最新代码执行。
    3.本地tomcat运行。

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

分模块构建工程-依赖整合

每个模块都需要spring或者junit的jar,况且最终package打完包最后生成的项目中的jar就是各个模块依赖的整合,所以我们可以把项目中所需的依赖都可以放到父工程中,模块中只留模块和模块之间的依赖,那父工程的pom.xml可以如下配置:

代码见项目!
发布了26 篇原创文章 · 获赞 39 · 访问量 5115

猜你喜欢

转载自blog.csdn.net/DengShengL/article/details/95041632