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

从windows系统变量激活Maven配置文件无效

冀子石
2023-03-14

我有以下maven配置文件

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <property>
                <name>spring.profiles.active</name>
                <value>dev</value>
            </property>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <activation>
            <property>
                <name>spring.profiles.active</name>
                <value>test</value>
            </property>
        </activation>
    </profile>
</profiles>


我在应用程序中有这个。属性

spring.profiles.active=dev

因此,dev是Spring和maven配置文件的默认值。

根据文档,这应该覆盖我的属性文件中的dev

http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html

69.5设置活动Spring外形

Spring环境对此有一个API,但通常您会设置一个系统属性(Spring.profiles.active)或一个OS环境变量(Spring\u profiles\u active)。例如,使用-D参数启动应用程序(记住将其放在主类或jar存档之前):

$java-jar-Dspring。个人资料。活动=生产演示-0.0.1-快照。罐子

在Spring Boot中,您还可以在应用程序中设置活动配置文件。属性,例如。

Spring个人资料。活动=生产

以这种方式设置的值将被System属性或环境变量设置替换,但不会被SpringApplication ationBuilder.profiles()方法替换。因此,后者JavaAPI可以用来在不改变默认值的情况下增强配置文件。

有关更多信息,请参阅第25章,Spring Boot功能部分中的配置文件。

现在,当我运行我的Spring应用程序时,它正在Spring中使用测试配置文件,但是maven配置文件激活并没有在这一点上起作用,仍然在使用开发配置文件

我已经尝试将SPRING_PROFILES_ACTIVE设置为中的名称

如果我在使用-Dspring运行maven时提供变量,它确实有效。个人资料。活动=测试

非常感谢您的帮助。

编辑:显然,当我部署一个战争到tomcat,其中catalina.properties包含spring.profiles.active=test时,这也不起作用。同样的事情,Spring使用test,但是Maven仍然停留在dev上。


共有2个答案

许承悦
2023-03-14

使用环境变量激活配置文件怎么样?

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <property>
                <name>spring.profiles.active</name>
                <value>dev</value>
            </property>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <activation>
            <property>
                <name>env.SPRING_PROFILES_ACTIVE</name>
                <value>test</value>
            </property>
        </activation>
    </profile>
</profiles>
呼延才俊
2023-03-14

不幸的是,你想做的是不可能的。配置文件只能从命令行或在某些情况下从设置激活。xml。看看这个答案。这篇文章包括有关JIRA议题的链接,讨论了挑战以及其他人试图让它发挥作用的内容。

系统属性在命令行上设置。

 类似资料:
  • 出于某种原因,我不得不使用环境变量,而不是将系统属性传递给mvn命令。所以,我使用${env。PROFILE}作为属性名,pom.xml中的配置文件设置显示如下: 然后,我尝试激活配置文件到在线,但我失败了,命令行显示如下: 然后打开maven调试模式(-X),属性如下所示: 我们可以在上述属性列表中找到属性: “PROFILE”变量似乎是在envrionment中设置的。但是,“在线”配置文件未

  • Maven允许根据其运行的操作系统系列激活某些构建概要文件,例如: 这里有很多问题:那么的允许值是多少?它们区分大小写吗?Linux是吗?还是?等等。 我可以在哪里找到关于允许的值的信息-或者,至少,Maven从哪里获取这些值?环境变量?

  • 我有一个Maven项目https://github.com/paulvi/MavenMultiModule1 用根pom.xml 我希望能够分别构建子系统, 例如,和 两个配置文件都可见,但无法使用开关激活 和其他项目一起工作 这里缺少什么来激活配置文件或者构建子系统的更好方法? 我已经阅读了如何激活从属模块中的Maven配置文件?

  • 我无法激活IntelliJ idea中的Spring下载配置文件。 爪哇17 IntelliJ IDEA 2021.3测试版(终极版) 这是文件pom.xml,我正在尝试运行的微服务。 文件application.yaml

  • 1.1. 文件系统配置 2. define CONFIG_EXTRA_ENV_SETTINGS \ 1.1. 文件系统配置 Rootfs文件系统设置成ubifs readonly,相应mount命令在uboot中设置,如下: $(K18DIR)/uboot/include/configs/leo_common.h / Extra Environment / … "mtdargs=ubi.mtd="

  • 我声明了一些特定于Maven配置文件的属性。我的pom.xml的一部分: 当我通过IntelliJ IDEA 2016启动Junit测试时,我在使用“ci”Maven配置文件时遇到一些问题。我通过“Maven项目”面板激活我的配置文件,然后启动测试。问题是“my.properties.file”属性值等于“foo.xml”,而不是“bar.xml”。 我对命令行没有问题(我可以使用“-Pci”标志