默认maven只会把src/main/resources目录下的文件拷贝至classes文件夹下,这个其实是在超级pom下定义好的:

<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>

这些文件会被拷贝至classpath下,这也就意味着如果我们在其他地方写了一个配置文件,最后这个文件不会被拷贝,如果想打包,必须使用resources配置。

可以在pom的build标签下配置一个resources标签,里面每一个resource标签都可以配置一个打包的目录。我们也可以针对目录下的文件做筛选,比如includes可以指定只包括该列表里的文件,那么其余的就不会被包含进来,excludes可以指定排除一些文件,其余的还是会被包含进来。


​http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html​