名词解释

// 祖传标签
<modelVersion>4.0.0</modelVersion>
<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.8.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.mycom</groupId>
<artifactId>test</artifactId>
<version>1.0.100</version>
<packaging>pom</packaging>
<name>test</name>

<modules>
	<module>common</module>
	<module>view</module>
	<module>business</module>
</modules>
  1. modelVersion: 说明项目描述符遵循哪一个 POM 模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当 Maven 引入了新的特性或者其他模型变更的时候,确保稳定性
  2. parent: 父项目的坐标。子项目会继承父项目的 dependencies, properties 等配置,也可以根据需要重写;类似于 java, 只支持单继承,但可以通过 dependencyManagement 突破这个限制,下文会说
  3. groupId: 组织id,由域+组织名(公司名)组成,一般固定
  4. artifactId: 项目名,一般起这个名字
  5. version:版本号,必不可少
  6. packaging: 打包方式,比不可少
  7. modules: 用来说明本级pom中包含几个模块,像common,view,business都是他的子模块
// package的方式有3种
<packaging>pom</packaging>// 用于项目中无代码,也不执行任何代码,是为了聚合工程或传递依赖用的,一般用于做父项目/模块(意思是只要有子项目就是pom)
<packaging>jar</packaging>// 用于把代码打成jar,一般用于兄弟项目/模块之间做依赖
<packaging>war</packaging>// 用于把代码达成war,一般用于项目部署

创建project

maven spring项目如何新增module 新建maven module_spring


输入名称

maven spring项目如何新增module 新建maven module_spring_02


一路next,创建好后,pom初始化状态

maven spring项目如何新增module 新建maven module_maven_03


由于作为根模块不放代码,src目录可以删掉

maven spring项目如何新增module 新建maven module_java_04


创建子module

maven spring项目如何新增module 新建maven module_spring_05


起名字

maven spring项目如何新增module 新建maven module_java_06


创建好后,工程结构

maven spring项目如何新增module 新建maven module_maven_07


父模块pom,现在的情况,新建的两个子module已经自动引进来了

maven spring项目如何新增module 新建maven module_spring_08


再创建一个包含自己子module的module

maven spring项目如何新增module 新建maven module_maven_09


注意修改packaging方式为:pom,src目录同理可以删掉,创建consumer和provider,business的pom

maven spring项目如何新增module 新建maven module_jar_10


最后的顶级父模块的pom,以及项目结构

maven spring项目如何新增module 新建maven module_java_11


各个模块之间的依赖可以通过gav坐标来进行配置,和平时用依赖一样