基于Idea搭建Maven多模块项目
一、项目结构
news-display是项目的主工程,内含4个模块,分别如下:
- news-api:提供对外的接口。该模块依赖与news-modules模块。
- news-common: 提供常用的组件库。
- news-modules: 管理多个业务模块。该模块依赖于news-modules模块。
- news-start: 项目启动模块。该模块依赖于news-api、news-common模块、news-start模块。
二、项目构建
2.1 创建父项目
新建一个空白标准maven project(不要选择Create from archetype选项)。步骤如下图所示。
得到一个标准的maven项目,因为该项目是作为一个Parent project存在的,可以直接删除src文件夹。如下图所示。
2.2 创建子模块
创建模块news-api、news-common、news-modules、news-start。以news-api为例,如下图所示。
news-api模块创建完毕,采用相同的方式,创建其他模块。最终结果如下图所示。
三、添加依赖
3.1 news-api模块
<dependencies>
<dependency>
<groupId>cn.haoeasy.news</groupId>
<artifactId>news-modules</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
3.2 news-common模块
无。
3.3 news-modules模块
<dependencies>
<dependency>
<groupId>cn.haoeasy.news</groupId>
<artifactId>news-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
3.4 news-start模块
<dependencies>
<dependency>
<groupId>cn.haoeasy.news</groupId>
<artifactId>news-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.haoeasy.news</groupId>
<artifactId>news-modules</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.haoeasy.news</groupId>
<artifactId>news-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
3.5 Jar包引入规则
- 项目中需要的外部依赖都应该在父工程中的pom.xml中引入,这样可以在子项目中省去了不必要的配置。
- 各个子项目的依赖单点在子项目进行配置。