IntelliJ IDEA中多module项目架构开发

来源:互联网 发布:淘宝上的红酒是真的吗 编辑:程序博客网 时间:2024/06/08 12:30
       在《Android Studio中的Project和Module是个什么鬼?》这篇博客中我详细介绍了在Android Studio中project和module的区别,由于AndroidStudio本身就是基于IntelliJ来进行开发的,所以在IDEA中product和module概念也是一致的,这里不再赘述。
       一般我们比较小型的项目都可以使用单module的方式进行开发,但是当项目规模比较大时,使用多module开发就是一个较好的选择。各个module之间的耦合度非常低,相互之间可以通过pom来配置。多module项目案例已经上传至   https://github.com/chenyufeng1991/StartSpringMVC_Modules。
(1)首先项目的基本架构如下: 


       最外面的springmvc是一个父module,也可以理解为一个module容器,其中里面包含三个module项目,common_utils是一个普通的Java项目,为外部提供方法调用;springmvc_core和springmvc_utils为普通的web项目。创建子module可以通过New->Module的方式来创建。父pom.xml的实现如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"    <modelVersion>4.0.0</modelVersion>    <groupId>com.chenyufeng</groupId>    <artifactId>springmvc</artifactId>    <packaging>pom</packaging>    <version>1.0-SNAPSHOT</version>    <modules>        <module>springmvc_core</module>        <module>springmvc_utils</module>        <module>common_utils</module>    </modules></project>


   (2)common_utils实现
     里面就实现一个工具方法,可供外界调用: 
public class App {    public static String getHello() {        return "Hello World";    }}

由于这是一个子module,所以需要在pom.xml中指定它的父module,


(3)springmvc_utils实现
      这是一个普通的Java web项目,但是会调用另一个module即common_utils中的方法,所以其实springmvc_utils依赖common_utils,在pom.xml中的配置如下: 



     经过以上配置后,在springmvc_utils中就可以方便的调用common_utils中的方法了:




(4)Tomcat配置
       在项目中的每一个web项目的module,在Tomcat中跑起来后都会生成一个独立的war包,可以分别进行部署或一起部署,Tomcat中可以通过路径进行区分: 



      在浏览器中通过不同的url就可以调用不同module中的接口。详细实现请参考:https://github.com/chenyufeng1991/StartSpringMVC_Modules 。



原创粉丝点击