进一步解决关于maven打包时,资源文件没有被打包进来的问题
起因
第一次使用Mybatis,将配置文件放在java包下,结果出现了配置文件编译后无法同步到target目录下
这里我们可以看到:
maven默认的打包资源:将resources下资源打包,而java包xml下配置文件未打包到target目录下
遇到的第一个问题
我通过百度找到了解决方案,在pom.xml文件中添加了下面这段代码
这是代码
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
重新编译后,可以发现resources 下的配置文件并没有打包到target目录下
这里我百思不得其解,网上又看了很多博客,无非以下几个解决方案
-
在pom.xml文件中插入我上面已经加入的代码,然而我插入上面代码解决了问题,也出现了新的问题
-
手动copy,将配置文件粘贴到target目录的classes文件夹下
-
pom.xml文件打包方式可能被更改为了pom,将其更改为jar或者war
随着学习的深入,我也是把java包下的配置文件转移到了resources文件夹下
我这是还没意识到是添加的那段代码的问题,每次修改都要重新copy,很烦
问题解决
这段代码网友们都没有出错,都可以正常打包resources下的配置文件
But 我就是做不到
解决方案:将这段代码删除,然后将配置文件全部放到resources目录下
总结
-
使用maven进行打包,若pom.xml中没有配置resources标签,则会采用默认策略,打包资源目录(src/main/resources)下的资源文件。
-
若pom.xml中配置了resources标签,则完全以配置的为准。(但是我配置的resources标签不行,后面找到原因再说)