gpt4 book ai didi

spring-boot - Spring Boot 与 Maven 多模块项目

转载 作者:行者123 更新时间:2023-12-04 02:54:08 25 4
gpt4 key购买 nike

我有一个 Maven 多模块项目,其设计类似于以下 SO 帖子中的第一个答案:
Multi-module maven with Spring Boot
现在我想要一个通用的 maven 模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共(public)项目作为第一级父 pom 的子项目(以便所有通过引导注入(inject)的依赖项,如 jpa、jackson 等都可用于公共(public)),那么 STS/Spring 将其检测为引导应用程序并提示没有 Main Maven 构建类。
有人可以建议我如何实现这一目标吗?
当前代码:
父 pom.xml:(仅包括相关部分)

    <project>
<name>...</name>
<groupId>...</groupId>
<artifactId>...</artifactId>
<packaging>pom</packaging>
<version>...</version>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Brixton.M3</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
子(公共(public)模块)pom.xml(仅相关部分),不是启动应用程序:
    <project>
<artifactId>...</artifactId>
<version>...</version>
<name>...</name>

<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</parent>

</project>

最佳答案

我没有关于您的项目的所有详细信息,但我最好的猜测是 spring-boot-maven-plugin在父级上定义(或者您在根 pom 中使用 spring-boot-starter-parent)。这有效地要求构建将您的模块打包为 Spring Boot 应用程序(这不是您想要的)。

STS 可能会寻找该提示来确定模块是否包含 Spring Boot 应用程序。如果它查找带有 @EnableAutoConfiguration 注释的主类,可能会更好。 (或 SpringBootApplication )。

您可以通过指定 skip property of the repackage goal 轻松解决问题(从构建方面)

  <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

如果 STS 仍将模块作为 Spring Boot 应用程序,我将创建 an issue in their tracker

关于spring-boot - Spring Boot 与 Maven 多模块项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com