Maven高级

Maven基础
黑马程序员Maven高级

文章目录

分模块开发与设计 (重点)

工程模块与模块划分

  • ssm_pojo拆分
    • 新建模块
    • 拷贝原始项目中对应的相关内容到ssm_pojo模块中
      • 实体类(User)
      • 配置文件(无)

ssm dao拆分

  • 新建模块
  • 拷贝原始项目中对应的相关内容到ssm dao模块中
    • 数据层接口(UserDao)
    • 配置文件:保留与数据层相关配置文件(3个)
      • 注意:分页插件在配置中与SqlSessionFactoryBean绑定,需要保留
    • pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
      • spring
      • mybatis
      • spring整合mybatis
      • mysql
      • druid
      • pagehelper
      • 直接依赖ssm_pojo(对ssm_pojo模块执行install指令,将其安装到本地仓库)

ssm service拆分

  • 新建模块
  • 拷贝原始项目中对应的相关内容到ssm_service模块中
    • 业务层接口与实现类(UserService、.UserServicelmpl)
    • 配置文件:保留与数据层相关配置文件(1个)
    • pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
      • spring
      • junit
      • spring整合junit
      • 直接依赖ssm_dao(对ssm_dao模块执行install指令,将其安装到本地仓库)
      • 间接依赖ssm_pojo(由ssm_dao模块负责依赖关系的建立)
    • 修改service模块spring核心配置文件名,添加模块名称,格式:applicationContext-service...xml
    • 修改dao模块spring核心配置文件名,添加模块名称,格式:applicationContext-dao.xml
    • 修改单元测试引入的配置文件名称,由单个文件修改为多个文件

ssm control拆分

  • 新建模块(使用webapp模板)
  • 拷贝原始项目中对应的相关内容到ssm_controller模块中
    • 表现层控制器类与相关设置类(UserController、异常相关...)
    • 配置文件:保留与表现层相关配置文件(1个)、服务器相关配置文件(1个)
    • pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
      • spring
      • springmvc
      • jackson
      • servlet
      • tomcat服务器插件
      • 直接依赖ssm_service(对ssm_service模块执行install指令,将其安装到本地仓库)
      • 间接依赖ssm_dao、ssm_pojo
    • 修改web.xml配置文件中加载springa环境的配置文件名称,使用*通配,加载所有applicationContext-开始
      的配置文件

小节

  • 分模块开发
    • 模块中仅包含当前模块对应的功能类与配置文件
    • spring核心配置根据模块功能不同进行独立制作
    • 当前模块所依赖的模块通过导入坐标的形式加入当前模块后才可以使用
    • web.xml需要加载所有的spring核心配置文件

聚合(重点)

多模块构建维护

聚合

  • 作用:聚合用于快速构建maven工程,一次性构建多个项目/模块

  • 制作方式:

    • 创建一个空模块,打包类型定义为pom
      <packaging>pom</packaging>

    • 定义当前模块进行构建操作时关联的其他模块名称

      ../ssm controller ../ssm service ../ssm dao ../ssm pojo
  • 注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关

小节

  • 聚合的作用
  • 聚合的配置方式
  • 模块的类型
    • pom
    • war
    • jar

继承(重点)

  • 作用:通过继承可以实现在子工程中沿用父工程中的配置
    • maven中的继承与java中的继承相似,在子工程中配置继承关系
  • 制作方式:
    • 在子工程中声明其父工程坐标与对应的位置

      复制代码
        	<dependency>
        		<groupId>org.springframework</groupId>
        		KartifactId>spring-context</artifactId>
        		<version>5.1.9.RELEASE</version>
        	</dependency>
        <dependencies>

    继承依赖使用

    • 在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本

      5.1.9.RELEASE 4.12
    • 调用格式:

      org.springframework spring-context $(spring.version}

    属性类别:内置属性

    • 作用
      • 使用maven内置属性,快速配置
    • 调用格式:
      $(basedir}
      ${version}

    属性类别:Setting属性

    • 作用
      • 使用Maven配置文件setting...xml中的标签属性,用于动态配置
    • 调用格式:
      $(settings.localRepository}

    属性类别:Java系统属性

    • 作用
      • 读取Java系统属性
    • 调用格式
      ${user.home}
    • 系统属性查询方式
      mvn help:system

    小节

    属性的作用

    五种属性值获取方式

    自定义属性配置与使用方式

    版本管理

    工程版本

    • SNAPSHOT(快照版本)
      • 项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
      • 快照版本会随着开发的进展不断更新
    • RELEASE(发布版本)
      • 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本

    工程版本号约定

    • 约定规范:
      • <主版本>.<次版本>.<增量版本>.<里程碑版本>
      • 主版本:表示项目重大架构的变更,如:spring5相较于spring4的迭代
      • 次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞
      • 增量版本:表示有重大漏洞的修复
      • 里程碑版本:表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试
    • 范例:
      • 5.1.9.RELEASE

    小节

    • 工程版本
      • RELEASE
      • SNAPSHOT

    资源配置

    配置文件引用pom属性

    • 作用

      • 在任意配置文件中加载po文件中定义的属性
    • 调用格式
      ${jdbc.url)

    • 开启配置文件加载pom属性

      s(project.basedir)/src/main/resources
相关推荐
小宇宙Zz16 天前
Maven依赖冲突
java·服务器·maven
砚底藏山河16 天前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
一勺菠萝丶16 天前
Maven SNAPSHOT 父 POM 无法解析问题排查
java·maven
我登哥MVP16 天前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
南部余额16 天前
Maven Archetype 项目模板
java·maven·项目·archetype
梦想的旅途216 天前
企业微信外部群自动化:一期交付应聚焦双向会话闭环
java·开发语言·机器人·自动化·maven·企业微信
vx-Biye_Design16 天前
springboot安阳地区研学旅游服务小程序-计算机毕业设计源码12785
java·vue.js·windows·spring boot·tomcat·maven·mybatis
Clang's Blog16 天前
Ubuntu(20.04/22.04/24.04)国内环境一键安装 Docker、JDK17 和 Maven
ubuntu·docker·maven
编程的一拳超人17 天前
Maven 国内高速镜像推荐(按速度排序)
java·maven
Orchestrator_me17 天前
Centos7安装maven 3.9.11
java·maven