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

使用maven给出的Spring配置文件运行SpringBootTest

鲁景山
2023-03-14

我在我的maven pom中得到了以下配置文件:

    <profiles>
        <profile>
            <id>local</id>
                <build>
                    <plugins>
                        <plugin>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-maven-plugin</artifactId>
                            <configuration>
                                <profiles>
                                    <profile>local</profile>
                                </profiles>
                            </configuration>
                        </plugin>
                    </plugins>
                </build>
        </profile>
    <profile>

这对于启动应用程序来说很好,但如果我想按如下方式构建应用程序,mvn clean install-Plocal(mvn clean install-Plocal)会因以下原因而失败:

No active profile set, falling back to default profiles: default

还尝试了:

        <profile>
            <id>local</id>
                <build>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-failsafe-plugin</artifactId>
                            <configuration>
                                <argLine>-Dspring.profiles.active=local</argLine>
                            </configuration>
                        </plugin>
                    </plugins>
                </build>
        </profile>

我错过了什么?

也没有兴趣在mvn干净安装-Dspring.profiles.active=local我知道这工作,但只是不感兴趣,因为配置文件包含的不仅仅是我们的配置文件!

共有1个答案

全彬
2023-03-14

(您的)Spring boot maven插件(配置)不受“install”目标的影响(它只涉及Spring boot:repackage,它不知道“活动概要文件”/此配置),这就是为什么您的概要文件(尽管已传播)在测试中未激活的原因。

如果希望它适用于mvn安装,则必须通过:

-Dspring.profiles.active=local

到:

>

在pom中(

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <argLine>-Dspring.profiles.active=local</argLine>
  </configuration>
</plugin>

或通过cmd。另请参见。插件文档。

故障安全插件...类似!;)插件文档。

也许更多。。。(启动spring boot的任何其他插件。)

>

以及(当然;)您还可以“打包”spring。配置文件。在应用程序的某个地方(属性/任何位置),在(几乎)任何“maven build”中都处于活动状态。

例如:

>

 <profile>
  <id>local</id>
  <properties>
    <myProfiles>local,foo,bar</myProfiles>
  </properties>
 </profile>
 <!-- ... and (outside/in default profile!) -->
 <build>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
      <filtering>true</filtering>
    </testResource>
  </testResources>
  <!-- ... -->
</build>

src/测试/资源/应用程序。属性:

 spring.profiles.active=${myProfiles}

将写入目标/测试类/应用程序。属性:

 spring.profiles.active=local,foo,bar

...,这将(希望)被捡起来

 类似资料:
  • 问题内容: 我正在尝试根据某个Maven配置文件是否处于活动状态来使用数据库信息配置Spring配置文件。我已经看到了一些答案,但是很难将它们放在一起。 我有一个这样的Maven个人资料: 还有一个settings.xml文件,如下所示: 并在servlet-context.xml中: 我的问题基本上是,如何将Maven属性放入servlet- context.xml文件中?我需要一个.prope

  • 问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题

  • 我有spring boot的申请。我需要将spring boot配置文件连接到maven配置文件,所以当我调用命令时 或 它应该调用spring boot加载application-dev.yml或application-prod.yml。当我打电话的时候 它应该在启动之前调用application-dev.yml文件。因此需要从2个命令调用spring boot开发配置文件。我有一个问题,每次我

  • 我需要创建基于特定环境属性文件的WAR文件。 因此我创建了2个属性文件, > application.dev.properties null

  • 我正在尝试使用maven配置文件实例化hibernate配置文件。我的配置文件位于下,在pom文件中,我标记了该文件夹以用于资源过滤。有趣的是,我可以从属性文件中加载相同的属性,而hibernate在解析配置文件时抛出异常。这是我正在使用的代码示例。 POM-资源筛选 文件结构 资源hibernate.cfg.xml

  • 本文向大家介绍spring的maven配置文件整理,包括了spring的maven配置文件整理的使用技巧和注意事项,需要的朋友参考一下 spring maven配置文件整理 spring各个包的maven配置文件 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!