分模块构建Maven工程Demo
1.分模块构建Maven分析
在企业项目开发过程中,由于项目规模庞大,业务复杂,参与的人员比较多,一般会通过合理的模块拆分将一个大型的项目拆分为N多个小模块,分别进行开发。而且拆分出的模块可以非常容易的被其他模块复用。
常见的拆分方式有两种:
- 第一种:按照业务模块进行拆分,每个模块拆分成一个maven工程,例如将一个项目分为用户模块、订单模块、购物车模块等,每个模块对应就是一个maven工程
- 第二种:按照层进行拆分,譬如持久层、业务层、表现层等,每个层对应就是一个maven工程
- 不管是上面哪种拆分方式,通常都会提供一个父工程,将一些公共的代码和配置提取到父工程中进行统一管理和配置。
1.1 Maven工程的继承
在Java语言中,类之间是可以继承的,通过继承,子类就可以引用父类中非private的属性和方法。
同样,在maven工程之间也可以继承,子工程继承父工程后,就可以使用在父工程中引入的依赖。 继承的目的是为了消除重复代码。
被继承的Maven项目中的pom.xml文件中的定义是:
<groupId>com.hj</groupId> <artifactId>parent</artifactId> <version>1.0-SNAPSHOT</version> <!--父工程的打包方式必须为pom--> <packaging>pom</packaging>
被继承的maven工程通常称为父工程,父工程的打包方式必须为pom,
所以我们区分某个maven工程是否为父工程就看这个工程的打包方式是否为pom。 继承的Maven项目中的pom.xml文件中的定义是否为pom。
<parent> <artifactId>parent</artifactId> <groupId>com.hj</groupId> <version>1.0-SNAPSHOT</version> <relativePath>../parent/pom.xml</relativePath> </parent>
继承其他maven父工程的工程通常称为子工程, 在pom.xml文件中通过parent标签进行父工程的继承。
1.2 maven工程的聚合
在maven工程的pom.xml文件中可以使用<modules>标签将其他maven工程聚合到一起,聚合的目的是为了进行统一操作。例如拆分后的maven工程有多个,如果要进行打包,就需要针对每个工程分别执行打包命令, 操作起来非常繁琐。这时就可以使用<modules>标签将这些工程统一聚合到maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程就都会被打包了。
在<modules>标签中添加被聚合的Maven工程
1.3分模块构建maven工程具体实现
此案例分模块构建 整合一下SSM测试
1.3.1首先创建父工程
创建完毕会自动打开到pom.xml文件
首先声明<packaging>pom</packaging>
父工程的打包方式必须为pom。
随后加入SSM框架所需坐标的jar包版本锁定:
父工程中的pom文件中呢只用于jar包版本的锁定,
子工程用什么直接写坐标不用写version
<!--指定版本--> <properties> <spring.version>5.0.5.RELEASE</spring.version> <springmvc.version>5.0.5.RELEASE</springmvc.version> <mybatis.version>3.4.5</mybatis.version> </properties> <!--锁定jar版本--> <dependencyManagement> <dependencies> <!-- Mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- springMVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${springmvc.version}</version> </dependency> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement>
1.3.2. 构建子工程 maven_pojo
父工程上右键new -->Module- ->Maven
构建完毕后创建实体类对象
构建完毕 子工程pom文件中显示:
<!--表示当前maven工程继承了 maven_parent父工程--> <parent> <artifactId>maven_parent</artifactId> <groupId>com.hj</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.hj</groupId> <artifactId>maven_pojo</artifactId>
此时父工程maven_parent的pom文件中就会自动的加入:
用于用于聚合其他其他maven工程的<modues>标签
子工程已经聚合在父工程中。
1.3.3. 构建子工程 maven_dao
构建dao层
构建完毕后创建相关类,添加配置文件;
在maven_dao模块的pom文件中 添加依赖
<dependencies> <!--在dao层的pom文件中加入pojo的坐标依赖--> <dependency> <groupId>com.hj</groupId> <artifactId>maven_pojo</artifactId> <version>1.0-SNAPSHOT</version> <scope>compile</scope> </dependency> <!-- Mybatis和mybatis与spring的整合 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!-- MySql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <!-- druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version> </dependency> <!-- spring相关 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <!-- junit测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
1.3.4. 构建子工程 maven_service
构建service层
构建完毕后创建相关类,添加配置文件
在maven_service模块的pom文件中 添加依赖
<!--这里用到了maven的依赖传递的特点, service直接依赖dao的坐标就无须再定义坐标--> <dependencies> <dependency> <groupId>com.hj</groupId> <artifactId>maven_dao</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--添加springMvc用到的坐标--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> </dependencies>
1.3.5. 构建子工程 maven_web
最后构建web模块
构建完毕后创建相关类,添加配置文件
在maven_web的pom文件中加入依赖
<!--这里用到了maven的依赖传递的特点 web直接依赖service的坐标就无须再定义坐标--> <dependency> <groupId>com.hj</groupId> <artifactId>maven_service</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
1.3.6 项目整体结构
项目整体结构如右图所示:
1:maven_parent为父工程,其余工程为子工程,都继承了
父工程maven_parent
2:maven_parent工程将其子工程都进行了聚合
3:子工程之间存在依赖关系,比如maven_dao依赖
maven_pojo、maven_service依赖maven_dao、
maven_web依赖maven_service
1.3.7 测试运行
把maven_web模块添加到tomcat中
分模块构建Maven工程,测试运行成功。
到此这篇关于分模块构建Maven工程的方法步骤的文章就介绍到这了,更多相关分模块构建Maven 内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/197739/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)