在⼀个Maven的SpringBoot项⽬中出现 '@' that cannot start any token. (Do not use @ for indentation) 异常情况。在配置⽂件 application.yml 中有如下代码:spring:
application:
name: @artifactId@运⾏报如下的错误:
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character '@' that cannot start any token. (Do not use @ for indentation) in 'reader', line 3, column 11: name: @artifactId@ ^分析:
artifactId是maven属性,我们知道使⽤mavne属性是使⽤${}的⽅式,为什么上⾯使⽤@@的⽅式呢,这是因为为了避免与SpringBoot的变量冲突,在spring-boot-starter-parent中mavne-resources-plugin插件中maven的变量被重新定义了,代码如下:
到这⾥我们知道maven-resources-plugin插件没有替换掉application.yml中的maven变量。解决⽅案,让插件替换配置中的变量:
因篇幅问题不能全部显示,请点此查看更多更全内容