Maven多模块工程Module开发(图文教程)

 更新时间:2018年12月11日 14:34:34   作者:wu6660563  
这篇文章主要介绍了Maven多模块工程Module开发(图文教程),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

使用IDEA创建多模块开发

功能模块来分module

跟java的package类似,一般是按照的功能模块分module,比如:sso/cas/portal/activity/system,具体可根据需要

例如,在电商系统中如下module

--module-test-common公共部分
--module-test-picture图片
--module-test-order订单
--module-test-checkout购物车
--module-test-pay支付
--module-test-catory类目
--module-test-product商品
--module-test-price价格
--module-test-account账号
...

组织架构分Dao/Service/Controller/Model等方式

--module-test-service
--module-test-model
--module-test-controller
--module-test-dao
--module-test-common
--module-test-util
--module-test-job
...

以上两种方式都可以,现在更多的应该是倾向第一种按照功能来解耦,module前期可以配置成jar,后期也可以建立独有的页面,独立的站点,通过子域名的方式访问,各个功能模块解耦,趋向微服务架构

创建项目

步骤:

File –> New –> Project –> Maven
Next
填写GroupId和ArtifactId –> Next
完成

将工程的src和其他的目录全部删除,只剩下pom.xml,修改pom.xml的<packageing>

File –> New –> Module,选中【Create from archetype】,选中【org.apache.maven.archetypes:maven-archetype-webapp】
如果不用快速骨架生成的方式,需要将该module的pom.xml设置为<packaging>war</packaging>

创建别的模块,别的模块使用maven-archetype-quickstart

备注:如果不用快速骨架生成的话,则pom.xml需要配置成建好`<packaging>jar</packaging>`,并且父类的parent项目的pom.xml需要手动配置如下

<modules>
  <module>module-test-web</module>
   <module>module-test-common</module>
   <module>module-test-order</module>
   <module>module-test-pay</module>
 </modules>

子module里面配置如下:

<parent>
  <artifactId>module-test</artifactId>
  <groupId>com.nick</groupId>
  <version>1.0-SNAPSHOT</version>
</parent>

如下图所示:

部署多Module项目

Tomcat跟普通Maven项目类似的方式配置

根据自己的需要在每个module添加module所需要的依赖

File –> Project Stucture

点击Modules,当项目的JDK是1.8的时候,配置每个module的Language Level为对应的JDK的level

Facets

  • 检查Facets右边的【Deplyment Descriptors】,必须是指向web.xml
  • 检查Facets右边的【Web Resource Directories】,必须是选中webapp的目录,类似普通非maven的项目需要指向WebRoot或者WebContent目录

Artifacts

这个配置很重要!这个配置很重要!这个配置很重要!

没配置之前如下:

使用源码模式将编译后的文件输出到classes下面

点击运行tomcat(不会在idea上面部署普通maven非多module项目的请自行百度)

module也可以使用多层级的module方式,如:

module-test
--- module-test-common
--- module-test-platform
--- --- module-test-platform-A
--- --- module-test-platform-B

由上可知:

1. module-test-platform-A和module-test-platform-B的parent是module-test-platform
2. module-test-platform和module-test-common的parent是module-test

上面配置要实现的话,也很简单,只需要将module-test-platform的pom.xml里面配置成<packaging>pom</packaging>,然后module-test-platform-A和module-test-platform-B的parent都以来module-test-platform的GAV(maven三要素:groupId/artifactId/version)就行了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Elastic Search搜索引擎在SpringBoot中的实践

    详解Elastic Search搜索引擎在SpringBoot中的实践

    本篇文章主要介绍了Elastic Search搜索引擎在SpringBoot中的实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例

    Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例

    本篇文章主要介绍了Spring Boot 集成Mybatis实现主从(多数据源)分离方案实例,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • SpringBoot+MyBatis-Plus实现分页功能

    SpringBoot+MyBatis-Plus实现分页功能

    在SpringBoot项目中,结合MyBatis-Plus(简称MP)可以非常方便地实现分页功能,MP为开发者提供了分页插件PaginationInterceptor,只需简单配置即可使用,本文给大家介绍了SpringBoot+MyBatis-Plus实现分页功能,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 基于多线程中join()的用法实例讲解

    基于多线程中join()的用法实例讲解

    下面小编就为大家带来一篇基于多线程中join()的用法实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • VSCode新手教程之配置Java环境的详细教程

    VSCode新手教程之配置Java环境的详细教程

    这篇文章主要给大家介绍了关于VSCode新手教程之配置Java环境的详细教程,工欲善其事必先利其器,想要工作顺利我们先搭建好JAVA的开发环境,需要的朋友可以参考下
    2023-10-10
  • SpringBoot项目中的favicon.ico图标无法显示问题及解决

    SpringBoot项目中的favicon.ico图标无法显示问题及解决

    这篇文章主要介绍了SpringBoot项目中的favicon.ico图标无法显示问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • SpringBoot+JWT实现单点登录完美解决方案

    SpringBoot+JWT实现单点登录完美解决方案

    单点登录是一种统一认证和授权机制,指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的系统,不需要重新登录验证,这篇文章主要介绍了SpringBoot+JWT实现单点登录解决方案,需要的朋友可以参考下
    2023-07-07
  • 详解Java中的内存屏障

    详解Java中的内存屏障

    这篇文章主要介绍了Java中的内存屏障的相关资料,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-05-05
  • Java 深入探究讲解抽象工厂模式

    Java 深入探究讲解抽象工厂模式

    当系统所提供的工厂所需生产的具体产品并不是一个简单的对象,而是多个位于不同产品等级结构中属于不同类型的具体产品时需要使用抽象工厂模式,抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态
    2022-04-04
  • Java多线程同步工具类CyclicBarrier的使用

    Java多线程同步工具类CyclicBarrier的使用

    本文主要介绍了Java多线程同步工具类CyclicBarrier的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论