创建父工程和子模块(springboot)

1. 创建父工程

创建普通springboot项目(推荐)

勾选父子共用依赖

创建maven父项目,一样

直接下一步

2. 创建springboot子模块

后续和创建普通项目相同步骤,可以创建多个

3. 修改文件目录

父工程目录

只留下画圈的文件

子模块(可以不修改)

只留下画圈的

4. 修改父工程pom文件

设置父级项目打包方式pom

<!--修改打包方式,不写默认是jar包-->
 <packaging>pom</packaging>

在父级项目中的pom.xml文件使用的packaging配置一定为pom。父级的pom文件只作项目的子模块的整合,在maven install时不会生成jar/war压缩包

指定父工程包含的所有子模块和编译顺序

<modules>
    <module>order-service</module>
    <module>user-service</module>
</modules>

通过标签来整合子模块的编译顺序,因此尽量将更加底层的service放在更先的位置优先加载依赖较为合适。

统一版本号properties

在标签内可以把版本号作为变量进行声明,后面dependency中用到版本号时可以用${变量名}的形式代替,

这样做的好处是:当版本号发生改变时,只有更新properties标签中的变量就行了,不用更新所有依赖的版本号以前一直不理解这句话,
	后来碰到多模块maven项目时深切体会到这样做的好处,
	 	   在父工程pom文件中定义该标签的变量,其他子类工程对该依赖引用后,当依赖的版本号发生改变时,只需要修改父工程该依赖的版本号即可。...
<properties>
      <java.version>1.8</java.version>
</properties>

还可以指定maven编码格式

<properties>
	  <!--指定源码的字符集,maven执行的编码格式-->
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	  <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

统一依赖版本号dependencyManagement

在父工程pom文件中,选择使用哪个,声明依赖还是引入依赖

dependencyManagement: 只在父工程内声明好依赖但是不引入,子项目pom中引入时不用写版本号,会使用父工程相同版本号
dependencies: 子项目中没有用到这个依赖,也会引入这个依赖

5. 修改子模块pom

<!--指定父工程-->
    <parent>
        <artifactId>springcloud-study</artifactId>
        <groupId>com.lskisme</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
经验分享 程序员 微信小程序 职场和发展