用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文件
将src文件夹删除,修改pom.xml文件,将<packing>jar</packing>修改为<packaging>pom</packaging>,pom表示它是一个被继承的模块,修改后内容如下:
二、创建zhangqz-damain模块
进入zhangqz-main目录,执行如下命令:
命令执行之后会在zhangqz-main目录下生成zhangqz-domain,其中包含src目录和pom.xml文件
同时在zhangqz-main目录中的pom.xml文件中自动添加如下内容:
这时,zhangqz-main的pom.xml文件内容如下:
将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文件内容如下:
三、创建zhangqz-dao模块
在zhangqz-main目录下执行如下命令:
命令执行结束会出现与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
模块的依赖。内容如下:
四、创建zhangqz-service模块
在zhangqz-main目录下执行如下命令
命令执行结束之后可以看到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的依赖。修改后内容如下:
五、创建zhangqz-web模块
在zhangqz-main目录下执行如下命令:
这里同样也会在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
的依赖。修改后内容如下:
六、编译运行web项目
上面已经创建了一个基于maven的多模块的web项目,由于最终运行的是zhangqz-web模块,所以添加对jetty的支持。修改zhangqz-web的pom.xml文件如下:
在zhangqz-main目录下执行如下命令:
在命令执行成功以后,在zhangqz-web目录下多出target文件夹,里面有zhangqz-web.war文件
在zhangqz-web目录中执行如下命令:
出现如下内容证明jetty启动成功:
访问:http://localhost:8080/zhangqz-web,将出现访问页面:
至此整个基于maven的多模块web项目就搭建成功了!