IDEA多模块工程和利用tomcat插件启动

Posted yintianhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA多模块工程和利用tomcat插件启动相关的知识,希望对你有一定的参考价值。

多模块开发的好处:

之前没怎么接触过写多个模块,大部分时间都是一股脑打包在一个jar里面,但随之带来的问题也是显而易见的,假设DAO层有一个部分需要修改,但是最后却需要打包整个项目,

这样其实做了很多无意义的工作,那么如果把DAO层单独分离出来,单独打包为jar,提升开发效率。除此之外,就像把DAO,Service,表现层分开的目的一样,分成不同的模块

来实现解耦,各个模块负责自己的功能,并且也可以使用其他项目中。最后,多个模块也跟利于分工,每个团队负责不同的模块,提高效率。

IDEA创建多模块工程:

与Eclipse不同的是,IDEA中没有workplace这个概念,在IDEA中只有project和module,project是项目中的最顶级的单元,其次就是module,也就是一个project包含多个module。

project和各个module的关系可以这样表示:

parent是父工程,所有的子模块都需要依赖它,再往下,将项目划分为工具类,DAO和service以及表现层(web),每一个模块都包含一个自己的pom文件,来规定自己的打包方式以及其他依赖。

website-parent--pom.xml (pom)

         |

         |

         |-- website-util

         |        |-- pom.xml (jar)

         |

         |-- website-dao

         |        |-- pom.xml (jar)

         |

         |-- website-service

         |        |-- pom.xml (war)

         |

         |-- website-web

                  |-- pom.xml (war)   

第一步就是创建一个工程了,至于是建空工程与否依情况而定,以建空工程为例,名app

技术图片----》技术图片

 

 

之后就是新建一个父模块,可以采用maven的骨架来构建,选择quickstart,暂且命名parent,之后一直next

技术图片----》技术图片

 

父模块没大改动,在pom文件添加打包方式为pom。

<packaging>pom</packaging>

之后根据自己的项目结构,继续构建module,如果该部分没有特殊的功能,比如表现层需要webapp目录,创建的时候跳过骨架选择即可,

如果有特殊功能可根据骨架创建。当然,如果不确定直接跳过骨架即可,骨架就是一个搭好的模型罢了,在没有骨架的模块上也可以自己创建相应的目录结构来实现功能。

重点是把各个的模块的pom文件的依赖和打包方式处理好,这对之后启动有着很重要的作用。

创建好的项目如图:

技术图片

 

tomcat插件启动:

在需要启动的模块的pom文件添加依赖:

 <!-- 配置Tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/</path>
                        <port>8081</port>
                        <server>tomcat7</server>
                        <uriEncoding>UTF-8</uriEncoding>
                    </configuration>
                </plugin>

参数解释:

path:访问的路径

port:启动的端口

server:服务器名称

uriEncoding:字符编码

这里我在Service和Web层都用了这个插件,但是单凭这个插件是无法启动的,因为是多模块的项目,而且Service和Web层都依赖于某些层,所以必须先将其他

模块打包好,才能正常启动。

 

打包的正确顺序是,父->子

以上图为例,先parent再common,再到manager,这些进行后才实现了dao,interface这些层的打包,之后的Service和web依赖于它们,才能正常启动。

IDEA对maven提供了很好的支持,找到Maven Project选项,可以看到如下

技术图片

这里实际上是代表了模块的一个生命周期,所以要使得其他maven模块也能依赖它们,只需将它们安装到本地maven库中就行。

点击install,再查看本地的maven库:

技术图片

 

技术图片

 

 可以看到本地仓库中已经有了相应的jar包

 这些工作完成之后就是启动了,这里我将Service设在8080,将web设在8081

技术图片

 

 技术图片

 

 然后配置好名字和需要其他配置

技术图片

 

 在command line行写上tomcat7:run (如果后面的7是指tomcat的版本。)

apply之后回到页面点击运行符号。

Service启动:

技术图片

 

 Web同样的方法启动:

技术图片

以上是关于IDEA多模块工程和利用tomcat插件启动的主要内容,如果未能解决你的问题,请参考以下文章

IDEA 配置 Tomcat 及 JRebel 热部署

Idea配置tomcat的一些细节

IntelliJ IDEA(集成各种插件:JDKTomcatMavenGradleGit)

idea tomcat 配置

IDEA实用教程之--创建Maven项目

利用assembly插件分环境打包配置文件