接着上面的项目,
继承和聚合为了统一管理;
聚合:
有些项目中有很多小模块,可以合并到一起,将多个子项目可以统一管理,可以对user-dao,user-service进行统一管理(maven clean等。。),编译,测试等;使用modules把多个模块写进去;
继承:
可以看到user-service和user-web这两个项目里面pom添加的jar包,spring的jar包很多一样,版本一样,
很多重复了;
版本号都一样了,可以搞一个父类,然后将这些版本信息统一管理;不然项目多的话,版本多起来也是挺复杂;
新建user-parent项目,对user-dao和user-service统一管理(聚合),同时对user-dao和user-service、user-web中的jar进行统一版本管理:
新建user-parent,只要有一个pom.xml就行了,所以new maven project,create a simple project(跳过一些骨架选项);
group id: com.cy.user
artifact id:user-parent
version:0.0.1-SNAPSHOT
packaging:pom
user-parent项目下,只有一个pom.xml就行了:
将user-dao、user-service、user-web中的依赖包都复制到user-parent中来,统一定义版本;user-dao、service、web项目pom.xml就不需要写版本号了;
pom.xml:
4.0.0 com.cy.user user-parent 0.0.1-SNAPSHOT pom ../user-dao ../user-service 4.1.7.RELEASE 4.12 1.2.17 org.mybatis mybatis 3.3.0 mysql mysql-connector-java 5.1.22 log4j log4j ${log4j.version} junit junit ${junit.version} test org.springframework spring-core ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-tx ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-context-support ${spring.version} org.springframework spring-web ${spring.version} org.springframework spring-webmvc ${spring.version} org.springframework spring-aop ${spring.version} org.springframework spring-aspects ${spring.version} org.springframework spring-jdbc ${spring.version} org.mybatis mybatis-spring 1.2.3 javax.servlet javax.servlet-api 3.1.0 javax.servlet.jsp javax.servlet.jsp-api 2.3.1 javax.servlet jstl 1.2
user-dao/pom.xml:
4.0.0 com.cy.user user-parent 0.0.1-SNAPSHOT ../user-parent/pom.xml user-dao jar UTF-8 org.mybatis mybatis mysql mysql-connector-java log4j log4j junit junit test
user-service/pom.xml就变成了:
4.0.0 com.cy.user user-parent 0.0.1-SNAPSHOT ../user-parent/pom.xml user-service jar UTF-8 org.springframework spring-core org.springframework spring-beans org.springframework spring-tx org.springframework spring-context org.springframework spring-context-support org.springframework spring-web org.springframework spring-webmvc org.springframework spring-aop org.springframework spring-aspects org.springframework spring-jdbc org.mybatis mybatis-spring junit junit test com.cy.user user-dao 0.0.1-SNAPSHOT
user-web/pom.xml就变成了:
4.0.0 com.cy.user user-parent 0.0.1-SNAPSHOT ../user-parent/pom.xml user-web war javax.servlet javax.servlet-api javax.servlet.jsp javax.servlet.jsp-api javax.servlet jstl org.springframework spring-core org.springframework spring-beans org.springframework spring-tx org.springframework spring-context org.springframework spring-context-support org.springframework spring-web org.springframework spring-webmvc com.cy.user user-service 0.0.1-SNAPSHOT junit junit test user-web
查看项目下的maven dependencies依赖jar包,版本都是从user-parent继承下来的;
运行项目,http://localhost:8080/user-web/index.jsp,正常访问ok;
tips:
运行项目出了点问题,把user-dao下面的com.cy.user.mappers包移到src/main/resources下面去了;因为xml不是java文件,编译的时候没编译进去,插件支持的不是很好;
------