步骤 2 : 创建父项目 步骤 3 : 选择简单项目 步骤 4 : 输入参数 步骤 5 : parentMavenProject 的 pom.xml 步骤 6 : update maven 步骤 7 : 创建子项目 步骤 8 : 简单项目 步骤 9 : 项目参数 步骤 10 : TestHutool 步骤 11 : 子项目的pom.xml 步骤 12 : 父项目的pom.xml 步骤 13 : 目录结构 步骤 14 : 可运行项目
通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。
这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。 所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。
菜单->File->New->Other->maven-Maven Project->Next
选择 Create a simple project. 这一步不是必须,只是简单一点。
然后点击Next
输入参数,主要是项目名称: parentMavenProject, 然后点击 Next
修改pom,主要两点:
1. 默认是 jar, 修改为pom。 这样才可以作为父项目存在。 <packaging>pom</packaging> 2. 增加 hutool jar 包的依赖,用于后来子项目里观察对其的调用。 <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>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
</project>
<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>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </dependency> </dependencies> </project>
修改 pom.xml 之后, 右键点击项目 -> Maven -> Update Project -> OK 进行更新。 否则项目会有红点~
接下来创建maven 子项目。 maven 子项目有叫做模块 module.
为了能够在 parentMavenProject 的基础上创建其子项目,首先右键点击 parentMavenProject, 然后点击 New -> Other -> Maven -Maven Module -> Next
和父项目一样,这里也勾选 Craete a simple project ( 非必须 ),然后点 Next
接着点 Finish
运行,现在看到运行效果。
就表示子项目虽然没有依赖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);
}
}
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); } }
这里仅仅是展示出来,可以看到其中有如下parent,就表示是引用父项目 parentMavenProject。
<parent> <groupId>cn.how2j</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <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>
<parent>
<groupId>cn.how2j</groupId>
<artifactId>parentMavenProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>childMavenProject</artifactId>
<name>childMavenProject</name>
<description>childMavenProject</description>
</project>
<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> <parent> <groupId>cn.how2j</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>childMavenProject</artifactId> <name>childMavenProject</name> <description>childMavenProject</description> </project>
再次打开父项目的pom.xml, 会发现其多了一个:
<modules> <module>childMavenProject</module> </modules> 表示其子模块是 childMavenProject <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>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
<modules>
<module>childMavenProject</module>
</modules>
</project>
<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>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </dependency> </dependencies> <modules> <module>childMavenProject</module> </modules> </project>
观察目录结构,可以发现 childMavenProject 是位于 parentMavenProject下面的。 所以如果将来有 childMavenProject1, childMavenProject2, childMavenProject3 也会放在这么一个目录下,就方便管理了。
在右上角有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下。
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2019-12-31
这一步很关键
2019-12-19
建maven工程时 怎么没有packageing选择jar 的选项?
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2019-09-04
建议加个springboot版的idea版本
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|