使用 maven 插件设置时 Spring Boot 配置文件不活动

Posted

技术标签:

【中文标题】使用 maven 插件设置时 Spring Boot 配置文件不活动【英文标题】:Spring Boot profiles not active when set with maven plugin 【发布时间】:2016-08-09 11:29:06 【问题描述】:

我正在尝试在启动 Tomcat 以在 maven 中进行集成测试时设置 spring 配置文件,如下所示:

...
<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <executions>
    <execution>
      <id>pre-integration-test</id>
        <goals>
          <goal>start</goal>
        </goals>
        <configuration>
          <profiles>
            <profile>testProfile</profile>
          </profiles>
        </configuration>
...

个人资料肯定没有激活。

另一方面,以下操作确实有效,并且请求的配置文件处于活动状态:

<jvmArguments>-Dspring.profiles.active=testProfile</jvmArguments>

这里的问题是我们无法停止服务器,这是运行自动化集成测试时的问题。

我正在使用弹簧靴“1.4.0.RELEASE”。

我的问题: 1. 为什么profile标签不起作用? (漏洞?) 2. 为什么在“停止”目标中尝试关闭服务器时找不到 JMX bean?这是否与 jvmArguments 的分叉有关?

【问题讨论】:

【参考方案1】:

我忽略了 main 方法中的参数。将它们传递给 Spring 应用程序解决了它:

public static void main(String[] args) throws Exception 
  SpringApplication.run(RunServer.class, args);

【讨论】:

以上是关于使用 maven 插件设置时 Spring Boot 配置文件不活动的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot Maven 插件时,jar 文件中缺少 Spring Boot 应用程序中的资源

springboot学习笔记

spring-boo hello world程序

spring-boot-maven-plugin插件作用

spring-boot-maven插件repackage(goal)的那些事

使用 Spring Boot BOM 管理 Maven 插件版本