Maven高级篇

分模块开发与设计

img

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、UserServiceImpl)
    • 配置文件:保留与数据层相关配置文件(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配置文件中加载spring环境的配文件名称,使用通配符*,加载所有applicationContext开始的配置文件

聚合

img

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

制作方式:

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

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

    <modules>
    	<module>../ssm_controller</module>
    	<module>../ssm_service</module>
    	<module>../ssm_dao</module>
    	<module>../ssm_pojo</module>
    </modules>
    
  • 注意:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关

继承

img

  • 作用:通过继承可以实现在子工程中沿用夫工程中的配置

    • maven中的继承与java中的继承相似,在子工程中配置继承关系
  • 制作方式:

    • 在子工程中声明其父工程坐标与对应的位置

      <!--定义该工程的父工程 -->
      <parent>
      <groupId>com.itheima</groupId>
      <artifactId>ssm</artifactId>
      <version>1.0-SNAPSHOT</version>
      <!--填写父工程的pom文件 -->
      <relativePath>../ssm/pom.xml</relativePath>
      </parent>
      
      
继承依赖定义:

在父工程中定义依赖管理

<!--声明此处进行依赖管理-->
<dependencyManagement>
	<!--具体的依赖-->
	<dependencies>
		<!--spring环境-->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.1.9.RELEASE</version>
		</dependency>
	<dependencies>
<dependencyManagement>
继承依赖使用

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

<dependencies>
	<!--spring -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
	</dependency>
</dependencies>
继承的资源
  • groupId:项目ID,项目坐标的核心元素
  • version:项目版本,项目坐标的核心因素
  • description:项目的描述信息
  • organization:项目的组织信息
  • inceptionYear:项目的创建年份
  • url:项目的URL地址
  • developers:项目的开发者信息
  • contributors:项目的贡献者信息
  • distributionManagement:项目的部署配置
  • issueManagement:项目的缺陷跟踪系统信息
  • ciManagement:项目的持续集成系统信息
  • scm:项目的版本控制系统
  • malilingLists:项目的邮件列表信息
  • properties:自定义的Maven属性
  • dependencies:项目的依赖配置
  • dependencyManagement:项目的依赖管理配置
  • repositories:项目的仓库配置
  • bulid:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置
  • reporting:包括项目的报告输出目录配置、报告插件配置等
继承与聚合

作用:

  • 聚合用于快速构架项目
  • 继承用于快速配置

相同点:

  • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
  • 聚合与继承均属于设计型模块,并无实际的模块内容

不同点:

  • 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
  • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

属性

属性类别
  1. 自定义属性
  2. 内置属性
  3. Setting属性
  4. Java系统属性
  5. 环境变量属性
自定义属性

作用:等同于定义变量,方便统一维护

定义格式:

<!--定义自定义属性-->
<properties>
	<spring.version>5.1.9.RELEASE</spring.version>
	<junit.version>4.12</junit.version>
</properties>

调用格式:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>${spring.version}</version>
</dependency>
内置属性

作用:使用maven内置属性,快速配置

调用格式:

${basedir}
${version}
setting属性

作用:使用maven配置文件setting.xml中的标签属性,用于动态配置

调用格式:

${settings.localRepository}
Java系统属性

作用:读取Java系统属性

调用格式:

${user.home}

系统属性查询方式

mvn help:system
环境变量属性

作用:使用maven配置文件setting.xml中的标签属性,用于动态配置

调用格式:

${env.JAVA_HOME}

环境变量属性查询方式

mvn help:system

版本管理

工程版本

SNAPAHOT(快照版本)

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

约定规范

  • <主版本>,<次版本>,<增强版本>,<历程版本>
  • 主版本:表示项目重大架构的变更,如:spring5相较于spring4的迭代
  • 次版本:表示有较大的功能增加和变化,或全面系统的修复漏洞
  • 增量版本;表示有重大漏洞的修复
  • 里程碑版本:表明一个版本的里程碑(版本内容)

资源配置

配置文件引用pom属性

作用:在任意配置文件中加载pom文件中定义的属性

调用格式:

${jdbc.url}

开启配置文件加载pom属性

<!--配置资源文件对应的信息 -->
<resources>
	<resource>
		<!—设定配置文件对应的位置目录,支持使用属性动态设定路径-->
		<directory>${project.basedir}/src/main/resources</directory>
		<!--开启对配置文件的资源加载过滤-->
		<filtering>true</filtering>
	</resource>
</resources>

多环境开发配置

加载指定环境

作用:加载指定环境配置

调用格式:

mvn 指令 –P 环境定义id

示例:

mvn install –P pro_env

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值