在 spring boot @activeprofile 注释中配置 Maven 配置文件

configure maven profiles in spring boot @activeprofile annotation

我已经阅读了很多书,但找不到告诉我如何在 @activeprofiles 注释中包含 maven 配置文件的解决方案。可不可以?

我试图解决的问题是在我的测试执行之前让 H2 和飞路启动,但这并没有发生。 pom.xml 中的 maven 配置文件中描述了配置。 当在 teamcity 中测试 运行 时,它会选择 maven 配置文件并执行,但作为独立的,它们找不到 H2 和 flyway 的配置,因此无法启动。

... can't find a solution that tells me how to inlucde the maven profiles in @activeprofiles annotation.

你的意思是根据 maven 配置文件激活 Spring 配置文件,如果是这样,你可以在你的 pom.xml:

中这样配置它
<profiles>
  <profile>
    <id>mvnprofile</id>
    <properties>
      <spring.profiles.active>springprofile</spring.profiles.active>
    </properties>
    <dependencies>
      <dependency>
      </dependency> 
    </dependencies>
  </profile>
  ...
</profiles>

在您的测试中 class 配置它应该 运行 在 ..

上的配置文件
@Runwith(..)
@SpringApplicationConfiguration(...)
@ActiveProfiles("springprofile")
public class YourTest { ... }

对于特定于配置文件的属性,除了 application.properties 之外,还要创建一个 application-springprofile.properties,Spring 引导将首先加载 application.properties,然后加载应用程序-springprofile.properties -- 覆盖之前从 application.properties 配置的任何属性。

最后,您使用 -P 标志设置 maven 配置文件

$mvn test -P mvnprofile