Maven构建项目时MyBatis的Mapper.xml未导出,需如何配置解决?
解决Maven构建时MyBatis XML映射文件未导出的问题
问题原因
Maven默认仅会将src/main/resources目录下的资源文件打包到classpath,src/main/java目录下只有.java文件会被编译,像MyBatis XML映射文件这类非Java文件不会自动复制到target目录的对应位置,导致运行时找不到映射文件。
解决方案
你需要修改pom.xml的构建配置,让Maven把src/main/java下的XML文件也打包到classpath里,有两种可选方式:
方式一:添加全局资源配置
在<build>标签下直接添加<resources>节点,覆盖默认的资源处理规则:
<build> <!-- 新增资源配置 --> <resources> <!-- 包含src/main/java下的所有XML文件 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <!-- 保留src/main/resources下的默认资源文件 --> <resource> <directory>src/main/resources</directory> </resource> </resources> <!-- 原有的plugins配置保持不变 --> <plugins> <!-- ... 你的插件代码 ... --> </plugins> </build>
方式二:修改maven-resources-plugin配置
调整你已有的maven-resources-plugin,添加资源包含规则:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </configuration> </plugin>
验证
配置完成后,执行mvn clean package重新构建项目,此时MyBatis的XML映射文件会自动被复制到target目录的对应包路径下,无需手动复制即可正常运行。
内容的提问来源于stack exchange,提问作者Guilherme Dambros
相关产品推荐
相关产品推荐

