Maven <resource>中<includes><excludes><filtering>之间的关系

最近在学习Maven,在学习资源过滤时经过反复实验后发现:网上的很多文章以及教学视频中将这部分的内容搞错,特别是<filtering>true</filtering>的作用,现在发出来供大家参考

过滤的意思是过滤后留下的意思,不是化学实验中过滤溶液的透过滤网的意思,共同点是都是得到我们想要的东西的意思

Super Pom默认配置的资源过滤有 /src/main/resources ,程序在Build时会默认过滤这个目录下的所有文件,而 /src/main/java 需要我们自己进行配置(如果你将Mapper.xml等文件放在这里的话)

目录名必须使用 / 进行分割,不能使用package的 .

资源过滤规则:

不配置过滤规则的话该目录下所有类型的所有文件都会被过滤出来          

<includes><excludes>只使用一个,同时使用2个是没有任何意义的,如果错误地使用了两个,那么过滤的范围取includes减去excludes的范围(includes中有excludes的话)

<includes>   过滤这些规则的文件

<excludes>  过滤这些规则的文件外的所有文件

<filtering>true</filtering> 的意思是启动占位符替换,使得关联pom.xml文件的文件中的占位符使用pom.xmlproperties的值,只影响到本目录中过滤出来的文件

只过滤资源的话不需要写<filtering>,这和资源过滤没有一点关系,无论true或者false都会进行过滤,这个设置一般在pom.xml中配置了properties时使用


版权声明:本文为qq_42579617原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。