本章节介绍如何创建一个多模块的Maven项目,我们先从下图看下创建的项目整体结构

项目首先有一个父工程,主要用于锁定子工程的版本、设置公共的插件。

多个子工程继承父工程,并且子工程之间有依赖关系,如上图所示。

通过Maven多模块创建项目的好处是使项目易于理解,不同模块分担的角色不同,项目更易于管理。

下面开始项目的创建,

首先创建父工程test-main

删除src等目录,项目目录结构如下图

下一步开始创建我们的Moudle模块项目

创建test-domin项目

选择File-New-Module

下一步,注意标红框这一定要选择之前创建好的test-main项目

Finish完成项目创建

项目目录结构为

接下来按照上面创建moudle的方法依次创建其他moudle子工程,这里不再一个个创建

需要注意的是当创建test-web项目时,pom文件中,packaging设置成war,<packaging>war</packaging>

最终我们创建的项目结果为

下面我们依次设置每个工程的pom.xml文件

test-main工程的pom.xml文件设置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.test.maven</groupId><artifactId>test-main</artifactId><version>1.0-SNAPSHOT</version><description>这是父工程,主要用于管理公共的插件和子工程中需要的资源的版本</description><modules><module>test-domain</module><module>test-dao</module><module>test-service</module><module>test-web</module></modules><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><druid.version>1.1.14</druid.version><commons.io.version>2.5</commons.io.version><poi.version>3.17</poi.version></properties><!-- 依赖声明 --><dependencyManagement><dependencies><!-- SpringBoot的依赖配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.1.1.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--阿里数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><!--io常用工具类 --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons.io.version}</version></dependency><!-- excel工具 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency></dependencies></dependencyManagement><!--jdk版本--><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build><!--私服的配置--><repositories><repository><id>public</id><name>aliyun nexus</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases></repository></repositories><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories>
</project>

test-domain工程的pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-main</artifactId><groupId>org.test.maven</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.test.maven</groupId><artifactId>test-domain</artifactId><packaging>jar</packaging></project>

test-dao工程的pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-main</artifactId><groupId>org.test.maven</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.test.maven</groupId><artifactId>test-dao</artifactId><packaging>jar</packaging><dependencies><dependency><groupId>org.test.maven</groupId><artifactId>test-domain</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>

test-service工程的pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-main</artifactId><groupId>org.test.maven</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.test.maven</groupId><artifactId>test-service</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>org.test.maven</groupId><artifactId>test-dao</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- io常用工具类 --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId></dependency></dependencies>
</project>

test-web工程的pom.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>test-main</artifactId><groupId>org.test.maven</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.test.maven</groupId><artifactId>test-web</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>org.test.maven</groupId><artifactId>test-service</artifactId><version>1.0-SNAPSHOT</version></dependency><!-- SpringBoot Web容器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot 拦截器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!--阿里数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></dependency></dependencies></project>

整个工程的配置就完成了,从项目的依赖图中我们看到各个项目依赖的关系和我们第一张图依赖顺序是一致的。

以上就是多Moudle工程的创建,需要完整源码的可以去我的码云上下载

本项目的码云地址:

Maven入门教程(十七)-Maven多Moudle项目创建相关推荐

  1. 【Maven入门教程】Maven的基本概念

    一.POM(Project Object Model)项目对象模型 Pom在Maven中是一个XML文件,位于项目的根目录下,其包含着项目构建所需要的必要信息,Pom还支持继承,当一个项目中拥有多个模 ...

  2. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  3. 无废话ExtJs 入门教程十七[列表:GridPanel]

    无废话ExtJs 入门教程十七[列表:GridPanel] extjs技术交流,欢迎加群(521711109) 在Extjs中,GridPanel用于数据显示,即我们平时说的列表页.在本节中,我们先对 ...

  4. Maven 入门教程

    maven是一个项目管理工具,不仅可以把源代码构建为可以发布的项目(包括 编译.打包.测试.分发),还可以生成报告.生成web站点.本文介绍maven的主要使用过程,作为入门 1.maven的安装 w ...

  5. Maven入门教程(一)

    1.Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.Maven是一个项目管理工具,它包含了一个项目对象模型 (Projec ...

  6. Maven入门指南① :Maven 快速入门及简单使用

    原文链接:http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html 开发环境 MyEclipse 2014 JDK 1.8 M ...

  7. Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目

    1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开pom.xml文件,添加如下内容: 1 <project xmlns="http://maven.a ...

  8. Java中的tiles_Spring mvc整合tiles框架的简单入门教程(maven)

    前言 本教程基于Springmvc,Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高.Spring 3.0更加完善,实现了对S ...

  9. Maven入门教程(十四)-Nexus3.X私服下载资源

    本章节主要讲解如何将私服的资源下载到本地仓库. 从图中我们可以看到,当我们设置了私服后,系统会先在私服中查找是否有需要的资源,如果没有则去远程仓库查找. 具体如何设置私服呢?步骤如下 首先我们需要在m ...

最新文章

  1. java short long_谈谈Java中整数类型(short int long)的存储方式
  2. 【Android】开源图表库MPAndroidChart的学习
  3. matlab调用c++生成dll32位与64位对应关系
  4. JavaScript零散知识点总结
  5. mysql修改密码的注意点
  6. Day 16 包 json模块和os模块
  7. springboot中service层注入的是实现类,但Controller层接收的是接口
  8. Info.plist与Prefix.pch修改文件位置遇到的问题及解决方法
  9. Vue安装与IDE HBuilder安装(一分钟读懂)
  10. 网站颜色搭配[收藏]
  11. 火狐扩展程序推荐_使用Firefox的RIP扩展程序自定义Web
  12. matlab的火山图,ggplot绘制火山图
  13. Linux系统中的用户管理
  14. 完美国际服务器维护中,《完美国际2》3月31日全服更新维护公告
  15. python群控微信_带你用 Python 实现自动化群控(入门篇)
  16. Recommended software
  17. aws亚马逊云购买服务器的操作记录
  18. pandas判断和删除重复duplicated和drop_duplicates
  19. AFN代码解读(-)
  20. 【面试题】HTML篇(一)

热门文章

  1. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
  2. 《Rework》读书笔记
  3. android没有adm_这可能是安卓平台上最好的下载器:ADM
  4. 用实际例子理解回调函数(Calback)
  5. ictclas4j java_ictclas4j 分词工具包 安装流程
  6. 不同网络情况的安防摄像头如何通过手机进行直播?
  7. 完整版代码(亲测可用),给网站加上访客统计—你是第位访客
  8. aui移动端UI框架
  9. DZone每日必读-News:2022 年 Java 开发:预测和选定趋势
  10. Android虚拟机、模拟器识别