原创

修改SpringBoot项目的Parent

本文字数:

2210

,大约阅读2分钟

通过 SpringBoot 创建的项目,默认都会使用 SpringBoot 作为 POM 文件的 parent。但是有些时候我们可能不想使用 SpringBoot 作为项目的 parent。这时候就需要修改 POM 文件来完成。

一、默认的 POM 文件

默认创建完 SpringBoot 的项目后,parent 标签如下所示。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

此时,parent 标签中使用的就是 SpringBoot 作为 parent,假如要创建一个 Maven 的聚合项目,而 Module 中的 POM 需要使用父 POM 作为 parent 时,此时就不能用 SpringBoot 做 parent 了。那么,我们就需要修改 POM 文件了。

二、修改后的 POM 文件

不使用 SpringBoot 作为项目的 parent,只要把 parent 部分替换为自己的 parent 即可,而 SpringBoot 对应的部分移动到另外一个部分。在 dependencyManagement 下添加 SpringBoot 的依赖。配置文件如下。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.4.3</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

只要有上面的配置,直接在 IDEA 中是可以启动项目的,但是打包后就无法启动了。提示如下:

Error: Unable to access jarfile eurekaserver-0.0.1-SNAPSHOT.jar

想要解决该问题,需要在 build 下增加相关的配置,配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

关键就是增加 repackage 的配置项即可。在启动项目就可以顺利的启动了。

三、小结

通过上面两处的配置,就可以方便的替换 SpringBoot 项目的 parent 了。

Java
Maven
SpringBoot
  • 作者:Netor0x86(联系作者)
  • 发表时间:2021-03-15 07:00
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论