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又恢复啦!