Spring boot 使用bootRun但不使用java-jar运行的项目

Spring boot 使用bootRun但不使用java-jar运行的项目,spring-boot,gradle,mybatis,Spring Boot,Gradle,Mybatis,有类似的问题 我使用/gradlew bootRun 当我使用/gradlew bootRun运行我的项目时,它可以工作,但不使用java-jar build/libs/My_application.jar它会给我以下错误: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.dao.UserDao.insert at org.apache.ibatis.

有类似的问题

我使用
/gradlew bootRun

当我使用
/gradlew bootRun
运行我的项目时,它可以工作,但不使用
java-jar build/libs/My_application.jar
它会给我以下错误:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.dao.UserDao.insert
    at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:230) ~[mybatis-3.4.2.jar!/:3.4.2]
    ...
org.apache.ibatis.binding.BindingException:无效的绑定语句(未找到):com.example.dao.UserDao.insert
在org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:230)~[mybatis-3.4.2.jar!/:3.4.2]
...

这里有什么区别?为什么它不能和罐子一起运行

我的问题通过使用大写字母的
mybatis
XML
文件名解决了。但是仍然不清楚为什么
bootRun
能够用小写字母找到它,而
java-jar
不能

根据您的后续评论,最可能的解释是
bootRun
从不区分大小写的文件系统读取文件。另一方面,jar中的定位文件是区分大小写的。

很可能是因为该文件是从
bootRun
中的文件系统读取的,它必须不区分大小写,而在jar中,名称是区分大小写的。