Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错

 二、配置文件及pom

2.1 配置文件结构

2.2 application.yml
spring:
# 根据环境读取配置文件(手动)
#  profiles:
#    active: dev
  # 根据环境读取配置文件(通过勾选maven插件)
  profiles:
    active: @runtime-profile@

 其他配置文件为正常的配置,标明开发,测试及生产环境

2.3 pom

下面只贴出对应环境配置,不涉及dependence,涉及真实ip位置全部改为本地ip

<profiles>
    <!-- 配置需要切换的环境 -->
    <profile>
      <id>dev</id>
      <!-- properties下的每个子标签我们可以理解为一个配置 -->
      <properties>
        <!--  标签名为自定义,和我们平时写properties一样,同样我们也可以定义一个或多个(key, value)配置-->
        <runtime-profile>dev</runtime-profile>
        <!-- 如果你需要配置一些变量,你可以在这里设置一个k-v数据,在具体的环境变量中读取这个数据或者你也可以在具体的配置文件中直接设置(如application-dev.yml) -->
        <config-addr>127.0.0.1:8081</config-addr>
      </properties>
    </profile>

    <profile>
      <id>prod</id>
      <properties>
        <runtime-profile>prod</runtime-profile>
        <config-addr>127.0.0.1:8083</config-addr>
      </properties>
    </profile>

    <profile>
      <id>test</id>
      <properties>
        <runtime-profile>test</runtime-profile>
        <config-addr>127.0.0.1:8082</config-addr>
      </properties>
    </profile>
  </profiles>
2.4 报错分析

以上配置选择dev环境进行启动时报错

2.5 解决方案

添加如下pom文件

  <build>
    <!-不设置resource 会导致application.yaml中的@@找不到pom文件中的配置-->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

添加之后重新启动项目,如果还是出现该问题,可能是预编译的classes问题,清除maven缓存,先clean再重新install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值