使用IDEA创建多模块maven继承、聚合项目——taotao

一、工程介绍

淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。
管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
客服可以在后台管理系统中处理用户的询问以及投诉。

具体实现:

使用IDEA创建多模块maven继承、聚合项目——taotao_第1张图片
具体实现

二、工程目录

使用IDEA创建多模块maven继承、聚合项目——taotao_第2张图片
结构
taotao-parent(父工程管理jar包的版本)

   |-taotao-common(把通用的工具类打包)

   |-taotao-manager(继承父工程)

      |-taotao-manager-pojo

      |-taotao-manager-dao

      |-taotao-manager-service

      |-taotao-manager-web(war包)

taotao-parent 为项目的父工程,用来管理jar包及版本

taotao-common为通用工程,继承父工程,就是把通用的工具类打包

taotao-manager为开发工程,同样继承父工程

其中,taotao-manager-pojo,taotao-manager-dao,taotao-manager-service和
taotao-manager-web均为开发工程的一个子模块,依赖于开发工程taotao-manager

前3个子模块打成jar包,taotao-manager-web打成war包

三、创建工程

1. 创建taotao-parent父类工程,后面所有的工程全部继承该工程
File → New → Project

使用IDEA创建多模块maven继承、聚合项目——taotao_第3张图片
创建.png

Maven → Next

使用IDEA创建多模块maven继承、聚合项目——taotao_第4张图片
next.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第5张图片
唯一标识.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第6张图片
taotao-parent.png

创建完后,删除生成的src目录,修改打包方式为pom,taotao-parent:pom.xml

maven中有3种工程:

  1. pom工程:用在父级或聚合工程中,用来做jar包的版本控制。
  2. war工程:会打包成war,发布在服务器上。如网站或服务。
  3. jar工程:打包成jar用作jar包使用。


    4.0.0
    
    
    com.taotao
    taotao-parent
    pom
    1.0-SNAPSHOT
    
    
        ../taotao-common
        ../taotao-manager
    

    
    
        4.12
        4.1.3.RELEASE
        3.2.8
        1.2.2
        1.2.15
        5.1.32
        1.6.6
        2.4.2
        1.0.9
        4.3.5
        1.2
        2.5
        2.0
        2.5
        3.3.2
        1.3.2
        3.3
        3.4.2
        0.9.1
        1.3.1
        2.7.2
        4.10.3
        2.3.23
        2.2.2
    

    
        
            
            
                joda-time
                joda-time
                ${joda-time.version}
            
            
            
                org.apache.commons
                commons-lang3
                ${commons-lang3.version}
            
            
                org.apache.commons
                commons-io
                ${commons-io.version}
            
            
                commons-net
                commons-net
                ${commons-net.version}
            
            
            
                com.fasterxml.jackson.core
                jackson-databind
                ${jackson.version}
            
            
            
                org.apache.httpcomponents
                httpclient
                ${httpclient.version}
            
            
            
                junit
                junit
                ${junit.version}
                test
            
            
            
                org.slf4j
                slf4j-log4j12
                ${slf4j.version}
            
            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
            
                org.mybatis
                mybatis-spring
                ${mybatis.spring.version}
            
            
                com.github.miemiedev
                mybatis-paginator
                ${mybatis.paginator.version}
            
            
                com.github.pagehelper
                pagehelper
                ${pagehelper.version}
            
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
            
                com.alibaba
                druid
                ${druid.version}
            
            
            
                org.springframework
                spring-context
                ${spring.version}
            
            
                org.springframework
                spring-beans
                ${spring.version}
            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            
            
                org.springframework
                spring-aspects
                ${spring.version}
            
            
                org.springframework
                spring-context-support
                ${spring.version}
            
            
            
                jstl
                jstl
                ${jstl.version}
            
            
                javax.servlet
                servlet-api
                ${servlet-api.version}
                provided
            
            
                javax.servlet
                jsp-api
                ${jsp-api.version}
                provided
            
            
            
                commons-fileupload
                commons-fileupload
                ${commons-fileupload.version}
            
            
            
                redis.clients
                jedis
                ${jedis.version}
            
            
            
                org.apache.solr
                solr-solrj
                ${solrj.version}
            
            
                org.freemarker
                freemarker
                ${freemarker.version}
            
            
            
                org.quartz-scheduler
                quartz
                ${quartz.version}
            
        
    

    
        ${project.artifactId}
        
            
                src/main/java
                
                    **/*.xml
                
                true
            
            
                src/main/resources
            
        
        
            
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
                
                    UTF-8
                
            
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.7.0
                
                    1.8
                    1.8
                    UTF-8
                
            
        
        
            
                
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.2
                
            
        
    

2. 创建通用工程taotao-common,继承父工程,保存的是通用的工具类及pojo,打包方式jar包
taotao-parent文件上右击创建新的model,和创建maven类似不需要勾选信息,taotao-parent→ New → Module

使用IDEA创建多模块maven继承、聚合项目——taotao_第7张图片
New一个Module.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第8张图片
next.png

然后会出现如下如下界面:

使用IDEA创建多模块maven继承、聚合项目——taotao_第9张图片
image.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第10张图片
修改后.jpg

修改打包方式为jar,taotao-common:pom.xml



    
        taotao-parent
        com.taotao
        1.0-SNAPSHOT
        ../taotao-parent/pom.xml
    
    4.0.0
    
    
    taotao-common
    
        
        
        
            joda-time
            joda-time
        
        
        
            org.apache.commons
            commons-lang3
        
        
            org.apache.commons
            commons-io
        
        
            commons-net
            commons-net
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
        
        
        
            org.apache.httpcomponents
            httpclient
        
        
        
            junit
            junit
        
        
        
            org.slf4j
            slf4j-log4j12
        
    

3. 创建taotao-manager聚合工程,打包方式pom,里面有一堆模块。创建工程类似taotao-common的过程,在taotao-parent文件上右击创建新的model,和创建maven类似不需要勾选信息:taotao-parent→ New → Module → Next → taotao-manager

taotao-manager:pom.xml



    
        taotao-parent
        com.taotao
        1.0-SNAPSHOT
        ../taotao-parent/pom.xml
    
    4.0.0

    taotao-manager
    pom
    
        taotao-manager-pojo
        taotao-manager-dao
        taotao-manager-service
        taotao-manager-web
    

    
        
        
            com.taotao
            taotao-common
            1.0-SNAPSHOT
        
    

    
        
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                
                    8086
                    /
                
            
        
    

3.1 添加模块,打包方式都为jar,taotao-manager-pojo,taotao-manager-dao,taotao-manager-service创建方式一样

taotao-manager-pojo

在taotao-manager上右键New → Module → Next → taotao-manager-pojo,过程类似mall-common的创建但是路径选择需要重写填写,如下图:

使用IDEA创建多模块maven继承、聚合项目——taotao_第11张图片
路径注意

taotao-manager-pojo:pom.xml pojo不需要依赖其它jar包



    
        taotao-manager
        com.taotao
        1.0-SNAPSHOT
    
    4.0.0

    taotao-manager-pojo

taotao-manager-dao:pom.xml dao的运行需要Mybatis等的支持,所以要添加依赖



    
        taotao-manager
        com.taotao
        1.0-SNAPSHOT
    
    4.0.0

    taotao-manager-dao

    
        
        
            taotao-manager-pojo
            com.taotao
            1.0-SNAPSHOT
        

        
        
            org.mybatis
            mybatis
        
        
            org.mybatis
            mybatis-spring
        
        
            com.github.miemiedev
            mybatis-paginator
        
        
            com.github.pagehelper
            pagehelper
        
        
        
            mysql
            mysql-connector-java
        
        
        
            com.alibaba
            druid
        
    

taotao-manager-service:pom.xml



    
        taotao-manager
        com.taotao
        1.0-SNAPSHOT
    
    4.0.0

    taotao-manager-service

    
        
        
            taotao-manager-dao
            com.taotao
            1.0-SNAPSHOT
        

        
        
            org.springframework
            spring-context
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-webmvc
        
        
            org.springframework
            spring-jdbc
        
        
            org.springframework
            spring-aspects
        
        
            org.springframework
            spring-context-support
        
    

3.2 添加模块taotao-manager-web表现层,打包方式为war,同样taotao-manager上右键New → Module → Next,如下图所示,
只不过这里选择webapp这项不同,点next下一步

使用IDEA创建多模块maven继承、聚合项目——taotao_第12张图片
需要勾选的地方.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第13张图片
路径.png

pom.xml


    
        taotao-manager
        com.taotao
        1.0-SNAPSHOT
    
    4.0.0
    taotao-manager-web
    war
    taotao-manager-web Maven Webapp
    http://maven.apache.org

    
    
        
            com.taotao
            taotao-manager-service
            1.0-SNAPSHOT
        

        
        
            jstl
            jstl
        
        
            javax.servlet
            servlet-api
            provided
        
        
            javax.servlet
            jsp-api
            provided
        
        
        
            commons-fileupload
            commons-fileupload
        
    
    
        taotao-manager-web
    

4. 右上角Edit Configurations

Edit Configurations
使用IDEA创建多模块maven继承、聚合项目——taotao_第14张图片
接下来
使用IDEA创建多模块maven继承、聚合项目——taotao_第15张图片
OK

需要把taotao-parent等需要安装的都安装到本地仓库,然后点击下图中的绿色小三角就OK了。

使用IDEA创建多模块maven继承、聚合项目——taotao_第16张图片
image.png
使用IDEA创建多模块maven继承、聚合项目——taotao_第17张图片
结果
使用IDEA创建多模块maven继承、聚合项目——taotao_第18张图片
访问成功

下篇:taotao-整合SSM框架
源代码:https://github.com/yvettee36/taotao

你可能感兴趣的:(使用IDEA创建多模块maven继承、聚合项目——taotao)