Spring+Mybatis工程里,mybatis 的xml路径十分关键。一般情况下,xml放在resource目录里比较好一些。但是很多代码生成器生成的xml是被放在了java路径下的mapper包里,和xxxMapper.java在一起。这样的工程如果直接打包,是会产生很多问题的。 原因在于如果你的资源文件在java包下面,则maven默认打包是不会认为这些资源文件需要打入包内,所以在启动的时候会报Invalid bound statement (not found),而如果资源文件放在resources文件夹下面就不会有问题,这与maven的资源存放机制有关。
如果要求maven打包的时候将java包下面的非*.java文件也打入包中,则需要下面这这个配置项。
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/.svn/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/.svn/*</exclude>
</excludes>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
...
</build>