当前位置: 首页 > 知识库问答 >
问题:

spring-boot-configuration-processor不在maven子模块项目上工作

印高阳
2023-03-14

我有一个maven多模块项目,有一个父模块和三个子模块。应用程序使用spring Boot。在其中一个子模块中,我有SpringBootApplication:

@SpringBootApplication
@EnableConfigurationProperties({AppProperties.class})
public class MainSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainSpringBootApplication.class, args);
    }
}
@Data
@ConfigurationProperties(prefix = "asdf")
public class AppProperties {
...
}
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

你有什么提示吗?

共有1个答案

曾奇略
2023-03-14

我明确地添加了:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
      <annotationProcessorPaths>
        <annotationProcessorPath>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-configuration-processor</artifactId>
          <version>2.1.5.RELEASE</version>
        </annotationProcessorPath>
      </annotationProcessorPaths>
    </configuration>
  </plugin>

到包含@configurationproperties注释类的子模块pom的plugins部分。现在生成target/classes/meta-inf/spring-configuration-metadata.json

 类似资料:
  • 我正在尝试创建一个多模块的项目,包含两个模块,核心和Web。它们都是我在Spring Initialzer上生成的Spring Boot项目。我设置了Maven POM文件,但在部署它时遇到了问题。然而,我很困惑配置是如何工作的。 核心模块将包含域对象/实体、Spring数据JPA存储库、服务,并将打包为一个JAR。Web模块将具有Spring Security、控制器和视图。它将被包装成一场战争

  • 我们正在多模块项目中使用spring boot。 我们有一个域访问模块,它具有公共的域对象类、存储库,以及数据源、JPA、Hibernate等配置,这些都是使用application.properties配置的。我们将所有这些配置放入公共模块中,以避免在更高级模块中重复这些公共配置。 在构建域模块时,这一切都运行良好,因此在测试单元中正确地加载了配置。 由于我们正在使用spring-boot,因此

  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • 我设计了一个maven多模块项目,就像下面这个帖子的第一个答案:Multi-module maven with Spring Boot 现在我想要一个通用的maven模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共项目作为第一级父pom的子项目(这样所有由引导注入的依赖项(如jpa、jackson等)都可用于公共项目),那么STS/Spring将它检测为引导应用程序,并抱怨maven

  • 所以我想构建一个具有以下结构的项目: 现在,模块1和模块2是模块3的依赖项。 问题1:这种方法是错误的吗? 问题2:当我实现这个时,项目的封装结构为父pom和模块1的pom,而模块1、模块2和模块3的子模块的封装结构为jar。现在,当我运行mvn clean install时,我得到以下错误:

  • 公用 模型 存储库 服务 网站 我们搜索了一下,没有找到一个解决方案,当项目具有这种结构时,如何制作一个可执行的jar。 下面是父pom.xml: 有人使用Spring Boot、Maven插件和Maven模块项目结构创建了可执行的fat jar吗?

  • 我有一个问题,为我的多模块maven项目正确设置Spring启动。 有一个模块“api”使用另一个模块“core”。Api有一个应用程序。包含spring的属性文件。邮政主机=xxx。根据Spring Boot文档,这为您提供了JavaMailSender接口的默认实现,可以自动连接。 然而,负责发送电子邮件的类驻留在“核心”包中。当我尝试构建该模块时,构建失败,因为找不到JavaMailSend

  • 如果jar项目不包含启动程序,我如何测试它们? 示例JUnit测试用例头: