idea中创建多module的maven工程
以前自学Java web的时候,我们都是创建一个web工程,该工程下面再创建dao、service、controller等包。自从工作以后,我们会发现现在的web项目包含多个module,controller和service都是分开在不同的module。个人认为,这样做的好处在于解耦,同时服务的重用。我们可以吧service的module打成jar包,提供给其他项目使用。
对于刚刚接触多module的maven项目的菜鸟来讲,很难转变以前的思想,也难以创建这种工程。本文就是教会大家使用idea来创建这种多module的maven工程。
1.简介
多module有一个父maven工程,多个子工程。在多个子工程中,可能有一个web工程,也可能有多个web工程。最终结果如下图:
2.步骤
2.1 在idea中,单击file》new》project,弹出下面对话框,这里不要选择Create from archetype复选框
点击Next,输入GroupId和ArtifactId,这里是创建父工程,名为demoparent。下面就一直next,知道创建完成。
2.2 选中demoparent,右键选择new》Module,创建子工程,同样不要选择Create from archetype复选框
输入第一个子工程名democommon,如下图所示。一直next,知道创建完成。
打开刚创建的democommon工程下的pom文件,添加jar,这样maven会把该工程打成jar包。
2.3 与创建democommon一样的步骤,再创建demoservice工程。不同的是,如果demoservice工程依赖于democommon工程,我们需要在其pom文件添加下面的依赖,否则就不需要。
2.4 创建demoweb工程,步骤与普通的maven web工程一样,如下:
如果demoweb工程依赖于democore,我们也需要加入下面的依赖。
打开工程属性,我们能看到demoweb工程的依赖就有democore和democommon。
总结:通过上面的步骤,我们就能够创建多Module的maven工程。如果我们需要添加其他jar包依赖,我们只需要在demoparent的pom文件中添加即可,不需要在子工程中添加。
idea中创建多module的maven工程的更多相关文章
- IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)
Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不太熟悉,我们今天就来看看. IntelliJ中创建普通的Java聚合项目相对来说比较容易,不会涉及到web操作,涉及到we ...
- 38.IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)
转自:https://blog.csdn.net/u012702547/article/details/77431765 Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不 ...
- IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)(转载)
创建parent项目 1.打开IDEA,注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了.所以这个页面直接点 ...
- 创建一个简单的Maven工程
Maven的工程结构如下图所示: 大致来看,Maven的工程结构如下: 在创建maven工程时,可以通过骨架创建,也可以不通过骨架创建. 我们先用idea通过骨架创建一个Maven工程. 配置pom. ...
- Jenkins 中创建项目时没有Maven项目怎么办
如果在创建项目时候,没有“创建一个Maven 项目”的选项. 你需要安装Maven项目插件:Maven Integration plugin . 点击“可选插件” 然后在右边的过滤输入框中输入搜索关 ...
- Maven详解(三)------ Maven工程目录介绍
上一章我们配置并安装好了 Maven,那么这一章我们介绍如何用eclipse创建一个 Maven 工程,然后介绍 Maven 工程的目录结构. 1.eclipse 创建 Maven 工程 第一步:Fi ...
- (一)Maven基础及第一个Maven工程
一.Maven介绍 ANT/Maven/gradle是一个项目管理工具,它包含了一项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecy ...
- Java读取Maven工程下的配置文件,工具类
Java开发中,经常需要在maven工程中读取src/main/resources下的配置文件: 思路如下: Class.getClassLoader() 返回类加载器ClassLoader,进而可以 ...
- Eclipse中创建Maven多模块工程
1.先创建父项目 在Eclipse里面New -> Maven Project: 在弹出界面中选择“Create a simple project” 这样,我们就按常规模版创建了一个Maven工 ...
随机推荐
- python 二维list取列
b = [i[0] for i in a] # 从a中的每一行取第一个元素.
- 罗技 M558 鼠标维修记录
罗技 M558 鼠标维修记录 故障现象 按键不灵敏 拆机内部图 前进键 后退键 左键 右键 中键 自定义功能键 使用的是 OMRON 按键,好东西,质量可以. 但毕竟是机械的东西,还是有老化,用万用表 ...
- [NN] 对于BackPropagation(BP, 误差反向传播)的一些理解
本文大量参照 David E. Rumelhart, Geoffrey E. Hinton and Ronald J. Williams, Learning representation by bac ...
- zz 史上最全--各银行借记卡的年费、小额管理费、转账费等!
史上最全--各银行借记卡的年费.小额管理费.转账费等! 发布时间:2015-01-14 17:28:10 还在迷茫借记卡自费的菜主儿们~菜菜特别整理关于各银行借记卡.存折账户等的年费.小额管理费.转账 ...
- 深入理解ASP.NET MVC(4)
系列目录 DataTokens和Areas机制 到目前为止Route对象只剩下DataTokens属性没有涉及,事实上这个Areas机制的核心. DataTokens实际上也是一个RouteValue ...
- SVN 环境搭建 需要注意的地方
一. 服务器上安装的软件: 先 安装 Subversion 下载的地址:http://www.sliksvn.com/en/download 安装 TortoiseSVN 下载地址:http:/ ...
- JZ2440 裸机驱动 第13章 LCD控制器(1)
本章目标 了解LCD显示器的接口及时序: 掌握S3C2410/S3C2440 LCD控制器的使用方法: 了解帧缓冲区的概念,掌握如何设置帧缓冲区来显示图像: 13.1 LCD和LCD控制器 13.1 ...
- 【python】globle的使用
python中直接定义的变量就是本地变量,使用global定义的变量就是全局变量.比如: a = 1 b = 1 def foo1(): global b #申明使用全局b a = 2 #a是本地变量 ...
- java编码-多重(乱码)
一.1,UTF编码 - 2,ISO解码 - 3,UTF编码 - 4,ISO解码 String ISO = "ISO-8859-1"; String UTF = "UTF- ...
- .Net和SqlServer的事务处理实例
1,SqlServer存储过程的事务处理一种比较通用的出错处理的模式大概如下:Create procdure prInsertProducts( @intProductId int, @chvProd ...