1.父子-聚合项目
通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。
这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。
所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。
2.新建项目
3.选择maven项目
- 左边选择Maven
- 勾选Create from archetype
- 选择org.apache.maven.archetypes:maven-archetype-quickstart
- Next
4.项目参数
输入如图所示项目参数
5.maven设置
6.项目位置
如图所示,然后点 Finish
7.修改pom.xml
idea 自动生成的 pom.xml 有一大堆东西,很多都用不着。 修改为如下的内容。
1.默认是 jar, 修改为pom。 这样才可以作为父项目存在。
<packaging>pom</packaging>
2.增加 hutool jar 和 junit 包的依赖,用于后来子项目里观察对其的调用。
<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.how2j</groupId>
<artifactId>parentMavenProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>parentMavenProject</name>
<description>parentMavenProject</description>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
</project>
8.创建子项目
所谓的子项目,其实是maven module.
右键点击 parentMavenProject->New->Module.
9.选择简单项目
- 左边选择Maven
- 勾选Create from archetype
- 选择org.apache.maven.archetypes:maven-archetype-quickstart
- Next
10.项目参数
输入ArtifactId: childMavenProject
11.maven设置
12.项目目录
如图所示,然后点击 Finish。
13.TestHutool
在 childMavenProject 下新建 TestHutool类,并运行。
可以发现,是可以使用 hutool jar 里的类的。 这说明子项目,能够使用 父项目中的 jar 包了。
package childMavenProject;
import java.util.Date;
import cn.hutool.core.date.DateUtil;
public class TestHutool {
public static void main(String[] args) {
String dateStr = "2012-12-12 12:12:12";
Date date = DateUtil.parse(dateStr);
System.out.println(date);
}
}
14.子项目的pom.xml
观察子项目的 pom.xml ,可以发现它多了个 parent, 这个就是对父项目的依赖。
<parent>
<artifactId>parentMavenProject</artifactId>
<groupId>cn.how2j</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
15.父项目的pom.xml
此时再打开父项目的 pom.xml ,可以发现它多了这么一个模块s, 就表示对子项目的关联。
<modules>
<module>childMavenProject</module>
</modules>
16. 项目结构
观察目录结构,可以发现 childMavenProject 是位于 parentMavenProject下面的。 所以如果将来有 childMavenProject1, childMavenProject2, childMavenProject3 也会放在这么一个目录下,就方便管理了。