java – 与maven父模块中的Checkstyle和PMD配置不同

前端之家收集整理的这篇文章主要介绍了java – 与maven父模块中的Checkstyle和PMD配置不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个maven的java应用程序具有以下结构:

parent
| - pom.xml
| - child
    | - pom.xml
| - analyzers
    | - pmdrules.xml
    | - checkstyle.xml

我在父pom.xml中配置了PMD和checkstyle.对于PMD,规则集配置如下,它对父模块和子模块都可以正常工作:

但是,对于checkstyle,如果我以相同的方式配置configLocation,它在父节点或子节点中都会失败.我必须使用自定义属性来克服这个问题.

这是一个复制品样本 – https://github.com/ramtech123/pocs/blob/master/myapp-parent-module/pom.xml

我尝试在调试模式下运行maven构建.从日志中,对我而言,实际的PMD执行似乎仅针对子模块进行,因此它没有问题.

有人可以帮我理解根本原因,并改善我的配置.

提前致谢.

最佳答案
当您创建子pom.xml时,它继承其父配置,但是诸如baseDir之类的属性被子代码覆盖,因此在模板化插件配置时它会使用自己的路径.

作为选项,您可以保留< configLocation> analyzers / checkstyle.xml< / configLocation>没有{baseDir}或{projectRootDir},它工作正常.

但是,您的解决方案也很好,因为您在父根中指定了projectRootDir,并且在那里进行了计算,并且子pom不会覆盖您的自定义属性,因此它是正确的.

您的pmd始终有效,因为pmd插件仅针对子模块运行.

猜你在找的Java相关文章