创建父工程
![e1afcb37e92255769fc4f45aa91c3d24.png](https://i-blog.csdnimg.cn/blog_migrate/14d6d27ae85b7b1e6e40a50362f55186.jpeg)
父工程注意不使用maven的模板
![883d2ac3a9b240f3ce7cc225f875fe31.png](https://i-blog.csdnimg.cn/blog_migrate/8110c2ba49a0330159e333b79b65f0d2.jpeg)
得出的样子:
![0631058c6eb750c2757adfb060b427e4.png](https://i-blog.csdnimg.cn/blog_migrate/7256c7f4428630123d1df11791bcf6ae.jpeg)
然后创建子工程:注意右键父工程创建module,或者file-new-module,然后选parent
![00aba8ef782c23f5875e4e6a5f3a8adf.png](https://i-blog.csdnimg.cn/blog_migrate/2b4b59563186dbc2ec633443a5c89517.jpeg)
注意这里是在父工程文件夹里面。我的子工程也是没有使用maven模板
![aee36ef5675f143a4ddd321af228642d.png](https://i-blog.csdnimg.cn/blog_migrate/10142509c33cc49e47f6dd747f8e5053.jpeg)
https://blog.csdn.net/AIU_IU/article/details/71844568 可以参考这个链接里面的,就是把Java文件夹标记为source root,resource文件夹标记为resource root。不过在引入springboot之后好像会帮你自动标记。
在普通的maven工程中使用springboot的方法1:
父工程引入:(引入这个是为了说明版本号)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
然后子工程引入:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这个测试你看需要。
方法2:
直接在子工程引入:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.9.RELEASE</version>
</dependency>
</dependencies>
这里把版本号都说明了。
引入springboot的依赖后,在project structure里就可以看到:下面这个spring的标志
![29169fed55fea35562fff5fa92412261.png](https://i-blog.csdnimg.cn/blog_migrate/ef4c3f8bbb5d1b99e5e03ad328988d34.jpeg)
实际使用spring initializr创建springboot工程,里面选择web模块的时候,就是相当于帮你在maven里加上一个spring-boot-starter-parent的parent,用来说明版本号,方便统一管理。然后再在下面加入spring-boot-starter-web,没有版本号,它是引用parent里的,还有一个spring-boot-maven-plugin的编译插件。接着就是给你加了个java包,然后有个入口类,然后配置文件里有个propertties文件,。其实这些我们都可以自己加的,没啥区别。
springboot真正定义各种依赖的版本的文件是在:
spring-boot-dependencies-2.1.9.RELEASE.pom
![3e915fb3b7251ff769ef8800d4c9cf7b.png](https://i-blog.csdnimg.cn/blog_migrate/029d54caa49755924db7caf4c0229a95.jpeg)
然后看创建maven父子工程的意义:
参考:https://blog.csdn.net/J080624/article/details/54693581
我理解第一个就是:在父工程中声明版本号,然后在子工程就不需要声明版本号了,只需要引入groupid和artificial即可。默认使用父工程的版本号,是一种继承关系。
我的第二个理解就是利用properties标签升级版本号。但是这个不太理解,应该是只能针对一堆都是一样的版本的字符串变量替换吧。不对,这里可以定义多个标签,这样就可以进行统一管理了。
然后还有一个引入版本号的方法:https://blog.csdn.net/vtopqx/article/details/79034835
就是 <dependencyManagement>标签。下面这段话很不错:
dependencyManagement里只是声明依赖,并不自动实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
————————————————
版权声明:本文为CSDN博主「漫天雪_昆仑巅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/vtopqx/article/details/79034835
反正就是一个类似父工程的作用。我想着它的产生是为了不好引入多个parent标签的原因。
一般来说,想看引入的版本,直接搜即可。ide都有界面会显示这个。
感觉收获挺多,更像一个系统的理解。