Intellj IDEA+Maven如何构建多模块项目

2024-05-15 03:48

本文主要是介绍Intellj IDEA+Maven如何构建多模块项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[size=large]在使用Java构建大型企业级项目时,我们一般更倾向于分层,分模块,分服务,分功能开发,这样搞的目的只有一个就是以高内聚,低耦合方式来提高整个项目的灵活性,扩展性,复用性,当然,这里面蕴含的思想与Java的设计模式和开发原则是非常类似的,因为大公司的项目的结构一般都非常复杂,只有提前规划好开发模式,才能在以后不断扩展,迭代,重构时减少出现牵一发而动全身的情况。

企业级项目,一般都会使用Maven来构建管理项目,如何在使用maven构建一个多模块的项目呢? 假设现在我们要开发一个web项目,现在分为1个父模块,4个子模块,结构以及依赖关系如下:[/size]

[img]http://dl2.iteye.com/upload/attachment/0111/3793/108a1414-06e9-3937-9523-adf7a9031a27.png[/img]
[size=large]idea里面的截图展示如下:[/size]

[img]http://dl2.iteye.com/upload/attachment/0111/3795/27bd9af4-62eb-3efe-a63d-3fc5caaca5fb.png[/img]
[size=large]步骤如下:

1,首先在idea里面File ->New Project->Next然后输入相关的坐标, 新建一个空的maven项目,作为父项目使用,创建完成之后,可将其src目录删掉,然后更改其pom属性为:[/size]

[img]http://dl2.iteye.com/upload/attachment/0111/3799/da717916-a76c-35f4-95d6-ecda30d8d385.png[/img]
[size=large]2,接着依次File ->New Module->选择archetype->然后输入相关坐标,新建4个module:dao , service,share-tools , web-app,需要注意的是,散仙web使用的是spring-boot项目,所以4个模块都是普通的maven就可以,类似如果你的web层使用的不是spring-boot,那么久需要在web-app模块选择时,选择maven-archetype-webapp

3,创建完成之后,我们就模拟一个分层协作的例子,先看下dao里面模拟的数据:[/size]


[img]http://dl2.iteye.com/upload/attachment/0111/3797/8f54d4ad-21b8-3e30-9e30-07167ca05d79.png[/img]
[size=large]然后用户访问的web页面展示如下:[/size]

[img]http://dl2.iteye.com/upload/attachment/0111/3801/585bf6e3-fcda-30c3-a4e8-20ae198af354.png[/img]
[size=large]ok,web上展示是这样的,但是实际内部的他们的调用关系,和文章开头的图里那样,web-app调用service,service先调用dao拿到数据,然后接着调用通用的工具类,对数据进行转小写,然后返回给最终的前台。


4,项目的源码例子,会放在文末附件中,最后,说一下几个关键点
(1)包命名方式需要统一,无论在web-app,service,share-tools 还是 dao层中,前缀包名最好保持一致,比如以com.easy开头,然后各个模块分别是com.easy.xxx
(2)模块和模块之间有依赖时,在分层package时,需要注意把依赖模块的jar导入对应的模块中,当然如果你们有自己的私服,那么就直接发布到私服上,然后引入就行了,如果没有私服,最好在父层pom下构建打包,这样你就不需要关心依赖的问题,父pom会组织所有的模块,然后正确的找到依赖,进行构建:[/size]

[img]http://dl2.iteye.com/upload/attachment/0111/3803/10bd1950-93d9-309f-a5b0-898e988d51fe.png[/img]
[size=large](3)所有的版本号,或者共享的属性,都应该在父pom中定义,这样每个继承父模块的module都会得到统一的版本[/size]
[b][color=green][size=large]
最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0104/9948/3214000f-5633-3c17-a3d7-83ebda9aebff.jpg[/img]

这篇关于Intellj IDEA+Maven如何构建多模块项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990721

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转