听说maven很神奇-04


一、创建业务逻辑层user-service

图片
二、业务逻辑层pom.xml文件引入user-log和user-core,最初如下引入时,项目环境并不能真正引入
补:   maven内置隐式变量
Maven提供了三个隐式的变量可以用来访问环境变量(env),POM信息(project),和Maven Settings(settings)
--------------
pom信息获得:
  • ${basedir} 项目根目录
  • ${project.build.directory} 构建目录,缺省为target
  • ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
  • ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
  • ${project.packaging} 打包类型,缺省为jar
  • ${project.xxx} 当前pom文件的任意节点的内容
图片
对user-log和user-core项目执行install将这两个项目放在本地仓库
如此便把这两个项目的依赖包都依赖到user-service项目中,这是一种依赖传递。

图片


三、使用easymock来测试service层
补:easymock是什么?
主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。同时也可以当调用别人的模块,而该模块又没有实现时(只提供接口),我们可以在独立的环境中测试自己的模块逻辑。
步骤:
*•使用 EasyMock 生成 Mock 对象;
 *•设定 Mock 对象的预期行为和输出;
 *•将 Mock 对象切换到 Replay 状态;
 *•调用 Mock 对象方法进行单元测试;
 *•对 Mock 对象的行为进行验证。
相关资料: http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/

图片

图片
四、maven的依赖特性
依赖范围【compile:编译时加入依赖、打包时也加、provided:编译测试时,加入依赖,打包不加;
runtime:在运行时加入依赖,编译不加,如mysql-connector-java;test:测试范围加入依赖。例如当将项目打war包时,没必要将junit和dbunit打包,他俩在测试的时候有用
只有test文件夹里的才会关联test依赖范围进行编译,而main目录下的不能用到test依赖范围的资源
图片
图片
解决办法:与测试相关的类放在与src/test目录下,而不是放在src/main目录下

图片
依赖传递 
传递compile包,若依赖范围是test,改范围的资源不会发生传递依赖
若项目A依赖资源1.0  直接依赖
项目B依赖资源1.2    简介依赖
项目C依赖于资源A、B(存在间接依赖)
依赖级别相同时,先声明那个依赖就用那个

②间接依赖,依赖级别越低,依赖优先级越高
图片
③限制某个依赖,排除依赖(当发生包冲突时,可以使用exclusions排除某些依赖)
图片
五、聚集与继承
为了实现将user-service、user-log、user-core聚合,运行一次
使用user-aggregation将三者聚合
只需在user-aggregation的pom.xml文件配置
注意:路径为相对路径

图片
在edit-configuration执行clean package,三个模块分别运行成功
图片
图片

继承:有利于 子模块有选择行的继承,而不需要全部继承
直接可以将聚合的user-aggregation模块作为其他三个模块的父模块
在user-aggregation的pom.xml用 用dependencyManagement进行管理子模块的依赖资源

图片

而在子模块中依次配置继承代码
图片
注意:聚合是整个模块
         继承是各模块的pom.xml配置文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值