众所周知,maven有一大特性就是可以继承。父子项目甚至是父子Pom都可以进行集成。
我在项目研发过程中发现一个问题。
maven parent pom中写入:
<resources>
<resource></resource>
<resources>
的时候,会被子项目中的同标签覆盖,而不是继承、合并到一起。如果子项目中没有对应的标签,继承效果反而没有任何问题。
这个问题导致了我打包失败,缺少对应的资源文件。(当资源文件位于源代码同目录下时尤其明显)
ROOT:
<resources>
<resource>
<directory>main/src</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
子项目必须这么写:
<resources>
<resource>
<directory>main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>main/src</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>