今天在导入别人的maven项目时,突然遇到下面的错误,很是奇怪,明明thymeleaf配置都没问题的。
org.thymeleaf.exceptions.TemplateInputException: Error resolving template
网上找了一大堆有的没的,一个个去试过,发现下面的解决方案是奏效的:
在pom.xml的build中添加如下代码,稍后再做解释:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
重新启动,发现可以运行,问题解决!
好,再来讨论为什么要这么去做。一般情况下,我们会把项目用到的各资源文件(各种xml,properites,xsd文件等)都放在我们的src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。有时候,比如mybatis的mapper.xml文件,我们习惯把它和Mapper.java放一起,都在src/main/java下面,这样利用maven打包时,就需要修改pom.xml文件,来把mapper.xml文件一起打包进jar或者war里了,否则,这些文件不会被打包的。(maven认为src/main/java只是java的源代码路径)。maven 编译的时候,就是在这些地方去找你的源文件,和资源文件然后进行编译的,你的包是放到 src/main/java 这个里面的,因此你必须声明。













网友评论