黑马程序员技术交流社区

标题: 【上海校区】IDEA实用教程---创建多模块的Maven项目 [打印本页]

作者: buguniao    时间: 2017-8-26 01:42
标题: 【上海校区】IDEA实用教程---创建多模块的Maven项目
本帖最后由 绮丽 于 2017-8-28 09:51 编辑

1.   前言
我们可以创建一个maven的war工程来完成一个web项目的开发。但是,如果这个项目的业务比较复杂就会导致项目体系庞大,在一个war工程中完成所有的编码就会带来以下问题:
1.项目过于臃肿;
2.项目的结构不清晰;
3.代码的重用性低;
鉴于以上问题,我们可以通过创建maven的聚合工程来对我们的项目进行分层(模块)开发。接下来我们将使用IDEA创建如图1-1所示的maven聚合工程。
图1-1 maven聚合工程结构


2.   创建步骤
      2.1 创建Parent Project
       ParentProject是聚合工程中的父工程,一个项目中只有一个。父工程管理子工程和项目中用到的maven依赖。
       ParentProjectIDEAmaven结构中是一个普通的maven工程,创建时不需要使用maven骨架,具体创建过程如下:
       第一步:如图2-1所示File à New àProject
2-1 创建Parent Project第一步

第二步:如图2-2 所示  选择maven然后next
2-2 创建Parent Project 第二步
第三步:如图2-3 所示:填写Parent Projectmaven坐标信息
2-3 填写maven的坐标信息

第四步:如图2-4所示:填写maven项目的项目名称和存储目录
2-4 填写maven的项目信息

第五步:如图2-5:maven的Parent Project创建完成
图2-5 Parent Project的项目结果

第六步:删除src目录
              因为Parent Project是用于管理子模块和依赖的工程,不需要在这个工程中书写代码,所以要删除src目录。


       第七步:配置maven环境
       如图2-6所示 IDEAFileàSettingsàMaven选项中设置maven的环境
       如图2-7所示 Maven home directory栏选择MAEN_HOME目录,在User settings file栏选择MAVEN_HOME目录中的config目录中的settings.xml配置文件。
       注:MAVEN_HOME目录为maven的安装目录
              2-6              2-7
2.2 创建pojo模块
pojo模块是Parent Project下的一个打包方式为jarmodule。在IDEAjar工程和pom工程一样,都是普通的maven工程。创建方式如下:

第一步:如图2-8所示,在demo-parent上点击鼠标右键-àNewàModule
2-8 创建demo-pojo子模块
第二步:如图2-9选择Maven,然后点击Next
2-9 创建demo-pojo子模块
第三步:如图2-10 所示,在1处填写demo-pojoArtifactiddemo-pojo
然后点击Next
2-10 创建demo-pojo子模块

第四步:如图2-11所示  1处的Module name填写module名:demo-poj。然后点击Finish完成demo-pojo模块的创建。
2-11 创建demo-pojo模块
2.3 创建common,dao,service模块
由于commondaoservice模块都是jar工程,所以创建过程与2.2 创建pojo模块一样。只是在Artifact名和module名称处填写相应的模块名。
创建完成后项目结构如图2-12
2-12 创建common,dao,service模块
2.4 创建controller模块
Controller模块为war工程,创建的时候需要依赖maven的骨架。具体创建过程如下:
第一步:如图2-13所示:在demo-parent父工程上右键创建module
图2-13 创建controller模块

第二步:如图2-14 选择MavenàCreatefrome archetypeàmaven-archetype-webappàNext
2-14 创建controller子模块

第三步:如图2-15 1处填写Artifactiddemo-controller然后点击Next
2-15:创建controller模块
第四步:配置maven环境,如图2-16所示
              1-检查mavenMAVEN_HOMEUser settings file配置是否正确,如果正确就不需要在配置了;
                  2-点击+添加Maven参数属性
                  3-Name处输入:archetypeCatalog
                  4-Value处输入:internal
                  点击OK然后Next进入下一步
                  注:第3,4步添加Mavenproperty是指定mavenwar工程加载本地的maven元数据,如果不指定就默认从中央仓库去加载。从中央仓库加载元数据会非常慢,所以需要手动配置这个参数。

2-16 创建controller子模块
第五步:填写Module Name,然后点击Finish完成controller模块的创建

2-17 创建controller子模块

3.   添加依赖关系
创建完成子模块后,还需要将各个模块的依赖关系建立起来。Demo-parent父工程下的子模块之间的依赖关系如下:
1.pojo依赖common
2.dao依赖pojo
3.service依赖dao
4.controller依赖service
如图3-1:在demo-pojo.xml中添加demo-common的坐标即可;
注:只需要书写<dependency>标签然后根据提示在artifactId中填写artifactId名称即可。
3-1 demo-pojo.pom中依赖demo-common
其他层的依赖关系均可按照上图所示的方法添加。

4.   启动项目
项目的启动方式请参考《IDEA实用教程之---创建Maven项目》:http://bbs.itheima.com/forum.php?mod=viewthread&tid=365375&extra=




作者: 播妞    时间: 2017-8-26 05:46
这个厉害了,好详细!
作者: buguniao    时间: 2017-8-26 13:22
播妞 发表于 2017-8-26 05:46
这个厉害了,好详细!

{:8_484:}多谢多谢!欢迎顶帖
作者: evan.zhou    时间: 2017-11-5 17:28
腾哥,idea 教程之Git hub那一篇出了么
作者: evan.zhou    时间: 2017-11-5 17:47
腾哥,eclipse的maven工程都有test目录和main一起被创建好的,专门用于写测试类的,idea maven工程需要手动创建么
作者: a391557355    时间: 2017-12-4 09:14
没比你全的了。感谢疼哥
作者: Yin灬Yan    时间: 2018-1-4 17:29
我来占层楼啊   
作者: OldYangman    时间: 2018-3-16 17:34
啊不错啊不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2