InteliJ下,
在spring boot 1.5.10的ymal配置文件中,
笔者希望得到maven中的一些配置信息,例如项目版本之类的,于是会用到这样的配置:
version: @project.version@
或者更不规范的写法也无所谓
app.java.version: @java.version@
这个配置一直以来运行的都没问题,直到一天,前一分钟在本地跑的好好的项目,后一分钟再启动的时候忽然报了个错,说ymal文件解析出错了,而且说得还很具体:@开头的字符咱解析不了,你娃别求乱用。
BUG如下
Exception in thread "main" while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
in 'reader', line 4, column 11:
version: @project.verion@
对于就是要获取maven属性的朋友,我就废话不说,先说解决方案:
在terminal中,项目的目录下运行
mvn spring-boot:run
也就是直接用mvn命令让spring boot运行一次,然后再通过配置文件获取mvn的配置就不会报错了。
而对于我们看到的,网上流传的各种解决方法,包括stackoverflow上的回答,也都是针对,需要返回一个@开头字符串而提出的,也就是加个引号,那就等于没解决,
还看到有说更新ymal版本的,我是试过,我这边是无效的,别人就不晓得了。
至于其中的原因,我认为主要应该和maven有关而不是spring boot,
但是解决方法就是这样了,知道具体原因的请不吝赐教。