Springboot2.1.5 Profile切换

发布于 2022-01-01 21:05:00 字数 1696 浏览 794 评论 5

application.yml

spring:
  profiles:
    active: @spring.active@

pom.xml

<profiles>
    <profile>
        <id>local</id>
        <properties>
            <spring.active>local</spring.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <spring.active>dev</spring.active>
        </properties>
    </profile>
</profiles>

然后启动报错:

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 17, column 13:
        active: @spring.active@

如果我加

"@spring.active@"

那么依旧报错为:

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

Disconnected from the target VM, address: '127.0.0.1:58740', transport: 'socket'

Process finished with exit code 0

有分析到位的么?如果我直接用 local或者dev 代替@spring.active@就没事。

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

眉黛浅 2022-01-07 01:39:26

我试过这个了,也是不行的,所有的配置我都加上了,不行,但是我重新弄了一个新的springboot项目,就可以,不知道哪里出现问题了

悲喜皆因你 2022-01-06 21:57:17
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-resources-plugin</artifactId>
   <version>${maven-resources-plugin.version}</version>
   <configuration>
    <delimiters>
       <delimiter>@</delimiter>
    </delimiters>
   <useDefaultDelimiters>false</useDefaultDelimiters>
  </configuration>
</plugin>

yml 中使用单引号 '@spring.active@' 

如果parent是spring-boot-parent就不需要上述配置了

清欢 2022-01-04 21:40:04
<profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-devtools</artifactId>
                    <optional>true</optional>
                </dependency>
            </dependencies>
            <properties>
                <!-- default Spring profiles -->
                <spring.profiles.active>dev</spring.profiles.active>
            </properties>
        </profile>

勾选maven dev profile,application-dev.yml 会覆盖application.yml

琴流音 2022-01-04 19:27:28

我试过这个了,也是不行的,所有的配置我都加上了,不行,但是我重新弄了一个新的springboot项目,就可以,不知道哪里出现问题了

嘦怹 2022-01-01 22:27:09

还差点配置

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文