1.聚合项目
对于多个有关联的maven module(模块),我们为其指定聚合容器(模块),聚合可以一次性操作多个模块(idea中指模块,eclipse中为项目)。
聚合项目或称为父项目,满足两点要求即可:
<packaging>为pom<modules>指定子模块
<groupId>com.**.**</groupId>
<artifactId>name</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>name</name>
<modules>
<module>**-common</module>
<module>**-other</module>
....
</modules>
说明:子模块与父模块目录关系并无要求。可以平行或包含。如:
|- parent_module
|- module1
|- module2
或者:
- parent_module
- module1
- module2
此时,将层级关系改对即可:
<modules>
<module>../**-common</module>
<module>../**-other</module>
....
</modules>
2. 新建父项目
file->new project->maven- 不选任何
archetype,父项目不需要模板。仅仅管理作用。
如下

项目名protTest
此时文件目录如下,删除src目录。

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>cn.whbing.pro</groupId>
<artifactId>pro-all</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
修改<packaging>,增加<module>,如下:

此时,pro-1 module并没有新建,有提示。
3. 新建子模块
新建普通的子模块。
在父模块上右键:
new->module->maven- 依然不使用模板。

此时再看父模块pom和子模块pom,均有变化。

父模块中自动加入了module,证明之前手动加入是不必要的,删除重复的。
子模块自动加入的<parent>
子pom:
<?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">
<parent>
<artifactId>pro-all</artifactId>
<groupId>cn.whbing.pro</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pro-1</artifactId>
</project>
4. 新建web子模块
同样不使用模板,新建普通子模块pro-2。
右键
pro-2-> open module setting【或者是file -> project Structrue】
点击
+号,选web,目录要记得修改。
记得有两处目录需要修改:
(1)
(2)


关于目录颜色与源
问题:后边多余的 [] 重新导入即可消失。
问题:pro-2 的java、resources目录并未变色(变成资源目录,way?)
解决办法:重启导入或者在模块上右键->选择目录设为源
(1)方法1:右击目录–>Mark directory as

(2)方法2:file->project Structure
设为源、添加web等都可以。
说明:
(1)pro-2 改为packaging war形式
<packaging>war</packaging>
(2)pro-2 如果依赖 pro-1,直接在依赖中写即可。
补充
(1)
通过打开 maven project 插件,管理配置文件与生命周期。

(2)
如何在项目中移除一个模块,而不删除模块?
在 file->project Structure 减掉即可。
如何恢复?
Remove Module(当你把project下中的一个module删除delete之后,会发现该文件夹右下角的蓝色flag消失了,但文件还在)。。那么如果你想重新把它加入module的话,该如何操作呢?
1、右击该普通文件夹的父级(即它上一级的module),选择Open Module Settings,之后会弹出一个框
2、在中间文件夹这一列找到刚刚的父级module,选中后点击列顶部的加号“+”,在弹出框选择“Import Module”,找到要加入module的子级文件夹,点击OK
3、弹出框,选择“Next”,always,最后一步选择“Select all”,然后点击“Finish”,搞定!
此时你会发现,消失的蓝色flag又恢复啦!
本文介绍如何使用Maven创建聚合项目、父项目及子模块,包括普通子模块和Web子模块,并提供步骤详解及目录设置技巧。
886

被折叠的 条评论
为什么被折叠?



