idea创建maven工程_maven创建父子工程 springboot自动配置

创建父工程

e1afcb37e92255769fc4f45aa91c3d24.png

父工程注意不使用maven的模板

883d2ac3a9b240f3ce7cc225f875fe31.png

得出的样子:

0631058c6eb750c2757adfb060b427e4.png

然后创建子工程:注意右键父工程创建module,或者file-new-module,然后选parent

00aba8ef782c23f5875e4e6a5f3a8adf.png

注意这里是在父工程文件夹里面。我的子工程也是没有使用maven模板

aee36ef5675f143a4ddd321af228642d.png

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

实际使用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

然后看创建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都有界面会显示这个。

感觉收获挺多,更像一个系统的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值