创建父工程
父工程注意不使用maven的模板
得出的样子:
然后创建子工程:注意右键父工程创建module,或者file-new-module,然后选parent
注意这里是在父工程文件夹里面。我的子工程也是没有使用maven模板
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的标志
实际使用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
然后看创建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都有界面会显示这个。
感觉收获挺多,更像一个系统的理解。