加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 01:09:10 所属栏目:Java 来源:网络整理
导读:我有一个maven的java应用程序具有以下结构: parent| - pom.xml| - child | - pom.xml| - analyzers | - pmdrules.xml | - checkstyle.xml 我在父pom.xml中配置了PMD和checkstyle.对于PMD,规则集配置如下,它对父模块和子模块都可以正常工作: 但是,对于check

我有一个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插件仅针对子模块运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读