最近在idea中使用gradle命令把springboot项目打包(war)过程中,执行gradle build命令时候报错: java.io.FileNotFoundException: Could not open ServletContext resource [/const.yml]
这个const.yml文件是用来保存系统一些常量的保存在resource路径下。我在代码中是这么读取这些常量的:
我们发现了上面的那一行提示,此时我们启动项目,发现变量是能读取到,但是打包还是报错,继续解决问题吧,此时我们看到有上角有个打开文档的连接,点击,结果如下:
通过读文档我们发现是因为加了@ConfigurationProperties注解的缘故,加这个注解后需要引入spring-boot-configuration-processor.jar,文档中也给出了解决方案,由于我本地gradle版本为4.6,所以再build.gradle中加入依赖:
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
加入依赖之后gradle刷新依赖,发现问题依然存在,而且这个jar包也没有引进来。此时我们将annotationProcessor改为implementation
如下所示:
implementation "org.springframework.boot:spring-boot-configuration-processor"
重新刷新gradle依赖问题解决。