在 IntelliJ IDEA 中创建基本的 Maven 多模块项目
在 IntelliJ IDEA 中创建基本的 Maven 多模块项目
笔者的环境:
- Maven 3.6.3
- JDK 11
- IntelliJ IDEA 2020.2.2 (Ultimate Edition)
创建 Maven 的多模块项目的好处有很多,比方说,可以非侵入式地使用其它工程中的模块、隔离同一个包中不同的类等。这里假设要创建的多模块项目不是 Web 项目,而是普通的 Java 项目。这里要创建的是一个 MVC 多模块项目,方法如下。
在继续阅读本教程之前,需要先完成 Maven 的安装。关于 Maven 的安装,请见笔者的另一篇博客:
Maven 的下载安装教程:
https://blog.csdn.net/wangpaiblog/article/details/112689500创建一个 Maven 项目,这个项目将作为多模块中的父模块。
创建好之后,应该可以看下如下的 pom 文件。
创建子模块。注意,在创建子模块时要选择父模块,同时正确指定子模块的路径。Maven 约定,默认为子模块路径为父模块的下一级。建议遵循 Maven 这个默认设定。
创建其它的子模块。
【小贴士】
如果在创建模块时使用合适的 Maven 原型,可以减少创建时的一些步骤。只是要注意,需要在使用 Maven 原型输入一些变量来避免 IntelliJ IDEA 长时间下载此 Maven 原型。而之所以这里没有选择在父模块中使用 Maven 原型,是因为父模块不需要做太多的事情。步骤如下:
如图。
在快要完成 Maven 模块创建时,在图中的 Properties 中添加键值对
Name-Value
:Name
: archetypeCatalogValue
: internal
如果不添加此键值对,IntelliJ IDEA 将会从 Maven 中央仓库去获取上面选择的 archetype。有过完整安装 Maven 的读者可能知道,这个过程可以十分缓慢。而添加此键值对之后,则获取该 archetype 的方式将变为内部获取,而使用这种方式构建项目的速度将大大提高。
父模块一般只是用于聚合子模块,它本身可以没有实际的 Java 代码。如果不需要在父模块中编写 Java 源代码,则父模块中的文件夹 src 可以删去。
Maven 规定,聚合模块的
<packaging/...>
要设置为 pom,同时作为父模块,应该在父模块的 pom 文件中写明它的子模块。(注意:在 Maven 中,聚合模块与父模块本质上是完全不同的、互相独立的概念。但为了减少麻烦,一般会让聚合模块也同时是父模块。)
另外,在设置完之后,IntelliJ IDEA 右侧应该会显示相应的各模块。
为了便于各模块之间的互相依赖,应该在父模块中设置这些依赖。
(注意:在父模块中,应该使用
<dependencyManagement/...>
,而不要直接使用<dependencies/...>
。因为直接使用<dependencies/...>
会让子模块引入不必要的依赖。编程的一个原则就是,不要做多余的事情。要记住,冗余代码就是地雷。如果不希望日后的开发成为灾难,那最好不要偷懒。)
现在,Maven 的多模块项目的骨架已经搭成。各模块中的文件夹 Java 即为 Java 源代码目录。
各模块的 pom 文件示例代码如下。
父模块 mvc 的 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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.genius.mvc</groupId><artifactId>mvc</artifactId><version>1.0</version><packaging>pom</packaging><name>mvc</name><modules><module>model</module><module>view</module><module>service</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project_version>1.0</project_version></properties><dependencyManagement><dependencies><dependency><groupId>org.genius.mvc</groupId><artifactId>model</artifactId><version>${project_version}</version></dependency><dependency><groupId>org.genius.mvc</groupId><artifactId>view</artifactId><version>${project_version}</version></dependency><dependency><groupId>org.genius.mvc</groupId><artifactId>service</artifactId><version>${project_version}</version></dependency></dependencies></dependencyManagement></project>
子模块 model 的 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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><artifactId>mvc</artifactId><groupId>org.genius.mvc</groupId><version>1.0</version></parent><artifactId>model</artifactId><name>model</name></project>
子模块 view 的 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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><artifactId>mvc</artifactId><groupId>org.genius.mvc</groupId><version>1.0</version></parent><artifactId>view</artifactId><name>view</name></project>
子模块 controller 的 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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><artifactId>mvc</artifactId><groupId>org.genius.mvc</groupId><version>1.0</version></parent><artifactId>controller</artifactId><name>controller</name></project>
在 IntelliJ IDEA 中创建基本的 Maven 多模块项目相关推荐
- 在IntelliJ IDEA中创建Web项目
在IntelliJ IDEA中创建Web项目 在IntelliJ IDEA中创建Web项目 1,创建Maven WebProject 选择File>New>Project 出现New Pr ...
- 在IntelliJ IDEA中创建和运行java/scala/spark程序
本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...
- 【Groovy】IntelliJ IDEA 中创建 Gradle 工程 ( Gradle 工程目录文件分析 )
文章目录 一.IntelliJ IDEA 中创建 Gradle 工程 二.Gradle 工程目录文件分析 一.IntelliJ IDEA 中创建 Gradle 工程 在 IntelliJ IDEA 中 ...
- 【开发环境】Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )
文章目录 前言 一.IntelliJ IDEA 中创建 Java / Kotlin 工程 二.准备 Java 和 Kotlin 代码 三.编译在 PC 上可执行的 Java / Kotlin JAR ...
- eclipse创建maven多模块项目(单个类似)
2019独角兽企业重金招聘Python工程师标准>>> 1.下载安装maven 1.1.下载 注意:maven的版本,要根据你的jdk版本来下载.要不会安装失败,提示版本问题哦 Jd ...
- 如何创建一个基于Maven的SmartGWT项目
如何创建一个基于Maven的SmartGWT项目 使用环境 Eclipse的版本为:Luna Service Release 2 (4.4.2)(这个其实不是很重要,你完全可以使用最新版本的Eclip ...
- Maven多模块项目中应用maven-tomcat-plugin热部署
Maven多模块项目中使用maven-tomcat-plugin热部署 比如有一个父模块xfl(类型为pom的maven项目),其中的pom.xml为: <modules> <mod ...
- IDEA中Maven项目中界面右边的Maven Projects中子项目出现灰色
问题描述:IDEA中Maven项目中界面右边的Maven Projects中子项目出现灰色 解决办法:原因是忽略了Maven模块. 第一步:在IDEA左上角的File-->Setting中找到M ...
- IDEA下Maven多模块项目介绍和搭建
为什么80%的码农都做不了架构师?>>> 1Maven多模块项目介绍 为了便于演示和表达,在intellij中建了小项目进行举例,如下图所示 其中web-m2模块,依赖于com ...
最新文章
- 百度大脑发布企业服务解决方案,将 AI 技术落实到细分领域
- [Silverlight]使用DoubleAnimation为对象添加动画效果
- saltstack安装
- java的System.getProperty()方法能够获取的值
- 像个字段相减绝对值_遇见你丨像个英雄一样活着 瘫痪作家用手指敲击文字著百万字文学作品...
- IOS UITouch 触摸事件,UIResponder 的作用
- 蓝桥杯历届试题----矩阵翻硬币
- PowerDesigner 表名、字段大小写转换
- Android Handler加载图片的几种方式(完)
- java1.8win7_JDK 1.8 安装配置教程(win7 64bit )
- 【安装配置】Oracle数据库Linux系统下安装(图形界面)
- AirDisk创建网盘
- WinRAR安装教程
- Python-爬虫(数据库基本操作,爬取豆瓣电影排行)
- 最全哔哩哔哩学习资源大整理,主要分为14大类,包含各个方面的学习资源
- vue+element_ui纯前端下载csv文件
- u-boot编译构成之 MLO(1)
- 上了年纪的酒店,如何“鸟枪换炮”?
- 研究方向之智慧仓储与物流及相关算法
- 解决arcgis地图选中的时候有白色边框的问题