学习笔记Maven:项目拆分

使用IJ idea,基于Action,Service,Dao分层,搭建SSh环境 ,学习maven的简单案例;


一共需要建立4个子模块

erp_domain   存放实体包

erp_dao      存放数据访问接口及实现类

erp_service   存放业务逻辑层接口及实现类

erp_web     存放action类代码和前端代码  (注意:此模块的packaging选择war

以及一个父模块 (pom)

erp_web工程中展开src\main\webapp目录,建立WEB-INF文件夹,并将web.xml拷贝到文件夹中。

通过以下方式依次创建 子模块.-------------------<



如果没有Parent 请通过 GroupId 添加便可.(好像有BUG 不会解决)


下图展示的 该项目的Dao层,依赖于Domain实体



各模块的依赖关系如下:

erp_dao 依赖erp_domain

erp_service 依赖erp_dao

erp_web依赖erp_service


使用Ij Idea 可以根据parent 自动添加,Eclipse 需要手动添加denpency.


如果将spring application 进行了拆分,需要进行下述配置,其子模块 实质上是以jar包的模式被父模块引用

运行测试及打

选择erp_parent工程,执行命令package进行打包(war)

这里我们需要注意一点,我们在将配置文件分到每个子模块后,打成的war包中不并包括其它jar工程的配置文件,这些jar工程的配置文件被直接打到jar包中,这时web.xml中下列配置就可以找到这些jar包中的配置文件:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:applicationContext*.xml</param-value>

</context-param>

classpath 和 classpath* 区别:
classpath:只会到你指定的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.


其中间接依赖 注意serlvetAPI ,这个的scope属性记得配置成 provided,因为当时TOMCAT容器组件进行加载的时候,自带一个Servlet,会造成冲突,

只需要编译时期使用.

在如整合SSH中,出现jar 包冲突的情况,(Struts2,与hibernate 的javasist) ,配置下述代码,令一方不引入该冲突jar包就行


<dependency>

  <groupId>org.apache.struts</groupId>

  <artifactId>struts2-core</artifactId>

  <version>2.3.24</version>

  <exclusions>

  <exclusion>

  <groupId>javassist</groupId>

  <artifactId>javassist</artifactId>

  </exclusion>

  </exclusions>

  </dependency>


,单元测试,保证所打jar包没有 测试所使用代码

<scope>test</scope>











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值