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

相关文章

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

idea如何开启菜单栏

《idea如何开启菜单栏》文章介绍了如何通过修改IntelliJIDEA的样式文件`ui.lnf.xml`来重新显示被关闭的菜单栏,并分享了解决问题的步骤... 目录ijsdea开启菜单栏第一步第二步总结idea开启菜单栏手贱关闭了idea的js菜单栏,花费了半个小时终于解决,记录并分享一下第一步找