一、pom.xml文件关系图:
以基础系统中学生这条线为例:
图一:pom.xml文件关系图
图说明:
- 该项目是Maven项目,使用pom.xml文件对项目进行管理
管理类:(非阴影部分)
- Itoo-root(pom.xml)
整个平台的管理包,主要由两部分构成:管理jar包版本和maven开发用的插件。Jar包版本:cas、shiro、mongoDB、log4j的版本都在这里管理Maven开发的插件:maven编译成ear、maven打包
- itoo-base-parent(pom.xml)
管理itoo-tool、itoo-base及一些扩展的公共的jar版本
- itoo-tool(pom.xml)
提供给使用此框架开发的所有系统的工具包:图表、mongodb、转json……如图:
业务类:(阴影部分)
- itoo-basic-parent(pom.xml)
需要继承itoo-root的pom文件;并且统一管理本系统中用到的各个jar的版本
- itoo-basic-api(pom.xml)
本包直接引用itoo-base包。api包依赖itoo项目中的底层包itoo-base
- itoo-basic-base(pom.xml)
除继承本项目的parent的pom文件,还需要引用底层itoo-base包
- itoo-basic- student-core(pom.xml)
Service层和Eao层开发使用到的依赖。例如:itoo-basic-base、itoo-basic-api、itoo-cloud-api的依赖
- itoo-basic-student-web(pom.xml)
Web层发使用到的依赖。例如:itoo-basic-api、itoo-easyui、shiro-cas的依赖
- itoo-basic- student-ear(pom.xml)
把下面这些jar、war的依赖关系都放到ear的pom.xml中,就可以将下面的jar、war都打到一个ear包内,把相互依赖的关系打到一起,jar之间可以互为调用,用来热部署或者打包。
- 00-05是先后的依赖顺序,依次部署:
01--itoo-tool----------平台公共的工具类:
02--itoo-base---------平台公共的BaseEao,BaseEaoIm实现类
03--itoo-basic-api-----自己业务的api,层
04--itoo-basic-core----自己业务的核心包(实现api的接口)
05--itoo-basic-web-----自己业务的web层
符号说明:
- :图一中实线+空三角,表示maven继承。
- 在pom文件中,用parent节点表示,以itoo-base与itoo-base-parent之间的关系为例,在itoo-base下的pom.xml文件中parent节点的代码如下:
<parent> <artifactId>itoo-base-parent</artifactId> <groupId>com.tgb</groupId> <version>0.0.1-SNAPSHOT</version> <relativePath>../itoo-base-parent/pom.xml</relativePath> </parent>
二、包的关系图
图二:包的关系图
底层:
- Itoo-tool:
供给使用此框架开发的所有系统的工具包:图表、mongodb、转json……包内容:只有pom.xml文件,无具体java代码
- Itoo-base:
底层的方法,是从个子模块中抽出来的公共的方法和实体。包含:
- BaseEao/BaseEaoImpl:
将直接操作数据库层的公共部分抽象出来,即为itoo-base的Eao层
- BaseBean/BaseBeanImpl:
将业务逻辑层的公共部分抽象出来,即为itoo-base的Service包
- BaseEntity:
将实体中公用的属性提取出来作为公共的实体属性。如:updateTime、createTime……
- Baseutiluuid:
生成uuid的策略,包含32位和64位
子模块(以基础系统模块为例):
- itoo-basic-parent:
需要继承itoo-root的pom文件;并且统一管理本项目中用到的各个jar的版本包内容:只有pom.xml文件,无具体java代码
- itoo-basic-api:
基础系统的Bean接口和实体以及数据库的持久化文件persistence.xml,其中接口是用来给本系统其他线和其他子模块的Sevice层使用的接口, persistence.xml配置了持久化所需的各种属性,如DataSource.
- itoo-basic-base:
基础系统的获取实体管理器(EntityManager)的部分,这里配置了实体单元名称,且与根据itoo-basic-api下的persistence.xml中实体单元名称一致,进而通过persistence.xml的配置进行持久化.
- itoo-basic- student-core:
基础系统模块中学生这条线的核心包。存放本条线的Eao、Service层,如:StudentEao、StudentEaoImpl、StudentBeanimpl、too-basic-student-web:
基础系统模块中学生这条线的web层,包含如:SpringMVC的controller层、SpringMVC的View层(.jsp文件)、 配置文件:web.xml、spring-mvc.xml、jboss-deployment-structure.xml
符号说明:
- :图二中虚线+实三角,表示包图依赖。
- 在pom文件中,用dependency节点表示,以itoo-base与itoo-tool之间的关系为例,在itoo-base下的pom.xml文件中dependency节点的代码如下(注意:图二中没有画出对第三方包的引用):
<dependencies> <!--java的扩展包 第三方的包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> </dependency> <!--转json的包 第三方的包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency> <!--hibernate包 第三方的包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <!--itoo-tool包 本系统的包 --> <dependency> <groupId>com.tgb</groupId> <artifactId>itoo-tool</artifactId> <version>${project.version}</version> </dependency> <!--maven的插件 第三方的包 --> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </dependency> <!--日志log4j 第三方的包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> </dependencies>
注意:
包图中为什么没有ear包:
八期使用的jboss6没有ear,打包时需要将jar和war分别打包部署。由于我们升级了新的jboss版本,jar、war分开部署的话,还存在一些问题,我们采用打成EAR包的方式,来发布部署,把我们项目的多个jar,和war包,一次性部署到jboss,从部署上来说提高了部署的效率,开发效率.综上来看:ear是将开发需要的jar和war打包在一起的一个管理工具,所以包图中没有ear包,它不是开发包,是管理包
版权声明:本文为博主原创文章,未经博主允许不得转载。