maven构建多模块项目的两种方式

maven构建多模块父子项目有两种方式,一种通过Eclipse工具去建立,另一种在可以在控制台通过maven指令建立项目。下面举例一步步构建下面的JavaWeb项目

project-parent

            |----pom.xml

            |----project-mybatis

                            |----pom.xml

            |----project-SDK

                            |----pom.xml

            |----project-service

                            |----pom.xml

            |----project-SpringMVC

                            |---pom.xml

一、在eclipse下构建maven项目,该项目由多个子模块组成。

1:首先说下Eclipse使用Maven创建Web时错误

:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap

错误如图

解决方案:

在Eclipse Maven配置中添加新的Catalog配置:

  • http://repo1.maven.org/maven2/archetype-catalog.xml

2:创建project-parent父项目,用来给各个子模块继承

接下来在使用刚添加的catalog创建web工程,这个时候就可以看到Eclipse联网下载了。

NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面,什么也不做,直接下一步到Select an Archetype界面。在Filter里输入maven-archetype-site-simple,进行过滤

选中后点击Next跳到下面界面

点击Finish生成项目,将src文件夹删除,然后修改pom.xml文件,将jar修改为pom,pom表示它是一个被继承的模块,项目出错的话右键项目maven update下,修改后的内容如下:

项目结构

3、创建子项目project-mybatis

选中父项目project-parent,点击右键,选择NEW -->project-->maven-->maven Module,点击下一步,在出现的界面中输入子模块的名称project-mybatis,点击下一步,出现Select an Archetype界面。这时选择maven-archetype-quickStart或者maven-archetype-webapp(构建web层时使用),然后选择完成,即生成子项目project-mybatis。

这时父项目pom文件是这样

项目结构

4、同上依次创建其它子项目

创建project-SDK和project-service 可以入下图直接勾上红色区域

 

创建project-SpringMVC子项目时 出现Select an Archetype界面,这时选择maven-archetype-webapp(构建web层时使用),这样生成project-SpringMVC子项目pom文件如下:这样maven打包时会生成war包

5、通过pom文件建立子项目的依赖关系

子项目project-service 依赖 project-SDK  和 project-mybatis

maven构建多模块项目的两种方式_第1张图片

子项目project-SpringMVC 依赖project-SDK

maven构建多模块项目的两种方式_第2张图片

 

6、搭建完后的模块化项目结构如下

对应的pom文件

7、部署服务器时maven打包

a、首先本地的maven环境配置下

MAVEN_HOME

C:\AsiaInfo\tools\apache-maven-3.3.3

maven构建多模块项目的两种方式_第3张图片

b、打包常用的命令

mvn clean --清包

mvn install -Dmaven.test.skip=true --打包

打包成功标志

maven构建多模块项目的两种方式_第4张图片

二、在控制台通过maven指令建立项目

用指令搭建这里就不多介绍,大家可以参考这个链接的博客去搭建。http://www.cnblogs.com/xdp-gacl/p/4242221.html

你可能感兴趣的:(Java,Maven)