Java基础、中级、高级、架构面试资料

解决SpringBoot配置文件中使用@project.version@报’@’ that cannot start any token.问题

JAVA herman 11588浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

SpringCloud 目前使用的公司比较多,虽然 Netflix 最近宣布一些开源项目不在支持和闭源《Eureka 闭源,Hystrix 停止开发,Neo4j 企业版彻底闭源》,但还是影响不了人们对微服务的热爱和追求。今年以来,我一直致力于公司现有项目的微服务改造,目前我们使用的 SpringCloud,今天在改造其中一个小项目时,报了'@' that cannot start any token异常。本文总结一下如何解决的这个异常。

首先,我在 yml 中做了以下配置:

server:
    port: 8080
spring:
    application:
        name: xttblog
eureka:
    instance:
        hostname: localhost
        instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}:@project.version@

然后,Eureka 注册中心中的实例显示不了版本号。

于是我又加了一个配置:

info:
    version: @project.version@

启动项目,抛出了'@' that cannot start any token. (Do not use @ for indentation)….异常。

SpringBoot 的版本我尝试了 1.5.3.RELEASE 和 1.5.13.RELEASE 都不支持。我检查了一下已经完成改造的项目,在它们的 pom.xml 中发现了秘密。

这个改造的项目和其它项目最大的区别在于配置文件 yml 放的位置。

这个改造的项目中把配置文件放在了 src/main/resources/config/xttblog 下。对于这种情况,我们需要在 pom.xml build 中配置 resource。具体如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/application.yml</include>
                <include>**/logback-spring.xml</include>
                <include>**/application-${env}.yml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

注意 <filtering>true</filtering> 必须配置,该属性默认为 false。

当你添加了 <filtering>true</filtering> 后,再启动项目后。问题完美解决!

另外你的项目如果没有指定 spring-boot-starter-parent 的话,也可能会抛出这个异常!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 解决SpringBoot配置文件中使用@project.version@报’@’ that cannot start any token.问题