用maven创建多模块的web项目,在项目开发中多模块便于后期的维护,此例中项目结构如下:

zhangqz-main

            |----pom.xml    

            |----zhangqz-damain

                            |----pom.xml

            |----zhangqz-dao

                            |----pom.xml

            |----zhangqz-service

                            |----pom.xml

            |----zhangqz-web

                            |----pom.xml

一、创建zhangqz-main项目

        创建zhangqz-main,用来给各个子模块继承。

        进入工作空间,执行如下maven命令:

       mvn archetype:generate -DgroupId=com.zqz.example -DartifactId=zhangqz-main                          - DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

        (注:由于我用的maven版本create命令已经过期,这里使用generate替换create)

        执行命令之后会在工作空间创建zhangqz-main目录,目录下有src目录和pom.xml文件

        

公司 maven 增加 供应商的 Maven repos_xml

        将src文件夹删除,修改pom.xml文件,将<packing>jar</packing>修改为<packaging>pom</packaging>,pom表示它是一个被继承的模块,修改后内容如下:

        

公司 maven 增加 供应商的 Maven repos_java_02

二、创建zhangqz-damain模块

        进入zhangqz-main目录,执行如下命令:

        

公司 maven 增加 供应商的 Maven repos_java_03

        命令执行之后会在zhangqz-main目录下生成zhangqz-domain,其中包含src目录和pom.xml文件

        

公司 maven 增加 供应商的 Maven repos_xml文件_04

        同时在zhangqz-main目录中的pom.xml文件中自动添加如下内容:

        

公司 maven 增加 供应商的 Maven repos_java_05

        这时,zhangqz-main的pom.xml文件内容如下:

        

公司 maven 增加 供应商的 Maven repos_xml_06

        将zhangqz-domain中的<groupId>com.zqz.example</groupId>和<version>1.0-SNAPSHOT

        </version>去掉,加上<packaging>jar</packaging>,因为zhangqz-domain会继承zhangqz-

        main的 groupId和version,packaging设置打包方式为jar包。

        修改后pom.xml文件内容如下:

        

公司 maven 增加 供应商的 Maven repos_java_07

        三、创建zhangqz-dao模块

        在zhangqz-main目录下执行如下命令:

        

公司 maven 增加 供应商的 Maven repos_xml文件_08

        命令执行结束会出现与zhangqz-domain同样的效果,在zhangqz-main目录下会有zhangqz-dao文

        件夹。

        同时在zhangqz-main的pom.xml文件中也会多了<module>zhangqz-dao</module>(这里就不

        截图了)

        让后将zhangqz-dao的pom.xml文件中的<groupId>com.zqz.example</groupId>和<version>

        1.0-SNAPSHOT</version>,添加<packageing>jar</packaging>,同时添加对zhangqz-domain

        模块的依赖。内容如下:

        

公司 maven 增加 供应商的 Maven repos_java_09

四、创建zhangqz-service模块

        在zhangqz-main目录下执行如下命令

        

公司 maven 增加 供应商的 Maven repos_java_10

        命令执行结束之后可以看到zhangqz-main目录下生成zhangqz-service文件夹,同时在zhangqz-

        main的pom.xml文件中自动添加了<module>zhangqz-service</module>

        修改zhangqz-service的pom.xml文件,将<groupId>com.zqz.example<groupId>和<version>

        1.SNAPSHOT</version>去掉,添加<packaging>jar</packaging>,zhangqz-service同时依赖

        zhangqz-dao和zhangqz-damain,这里我们只需添加对zhangqz-dao的依赖,因为在zhangqz-

        dao中已经添加了对zhangqz-domain的依赖。修改后内容如下:

        

公司 maven 增加 供应商的 Maven repos_java_11

        五、创建zhangqz-web模块

        在zhangqz-main目录下执行如下命令:

        

公司 maven 增加 供应商的 Maven repos_xml文件_12

        这里同样也会在zhangqz-main目录下生成zhangqz-web文件夹,不同的是在src/main/webapp目录

        下会生成WEB-INF文件夹和index.jsp页面,同时也会在zhangqz-mian的pom.xml文件中自动添加

        <module>zhangqz-web</module>

        然后修改zhangqz-web的pom.xml文件,将<groupId>com.zqz.example</groupId>和<version>

        1.SNAPSHOT</version>去掉,添加<packaging>war<packaging>,同时添加对zhangqz-service

        的依赖。修改后内容如下:

        

公司 maven 增加 供应商的 Maven repos_java_13

六、编译运行web项目

        上面已经创建了一个基于maven的多模块的web项目,由于最终运行的是zhangqz-web模块,所以添加对jetty的支持。修改zhangqz-web的pom.xml文件如下:

        

公司 maven 增加 供应商的 Maven repos_xml文件_14

        在zhangqz-main目录下执行如下命令:

        

公司 maven 增加 供应商的 Maven repos_maven_15

        在命令执行成功以后,在zhangqz-web目录下多出target文件夹,里面有zhangqz-web.war文件

        

公司 maven 增加 供应商的 Maven repos_maven_16

        

        在zhangqz-web目录中执行如下命令:

        

公司 maven 增加 供应商的 Maven repos_java_17

        出现如下内容证明jetty启动成功:

        

公司 maven 增加 供应商的 Maven repos_java_18

        访问:http://localhost:8080/zhangqz-web,将出现访问页面:

        

公司 maven 增加 供应商的 Maven repos_java_19

        至此整个基于maven的多模块web项目就搭建成功了!