maven pmd插件报告没有问题

时间:2013-01-04 15:44:08

标签: maven report pmd

我已将maven pmd插件配置为maven父pom,我将其用于名为MFactors3的测试项目。当我在Eclipse PMD中使用m2Eclipse构建这个小项目时,会报告大量违规行为。当我从命令行构建同一个项目时,PMD会在目标/站点文件夹中生成一个空的违规文件。

我的父pom的部分内容来自推荐的maven pmd文档。我现在没有显示任何pom材料,因为调用插件并且它成功运行。

下面是从命令行运行'mvn pmd:pmd -X'的输出。配置数据看起来完全正确。但没有检测到违规行为。为什么呢?

[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-pmd-plugin:2.7.1:pmd' with basic configurator -->
[DEBUG]   (f) aggregate = false
[DEBUG]   (f) compileSourceRoots = [/Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30 /src/main/java]
[DEBUG]   (f) excludeRoots = [/Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/target/generated-sources/stubs]
[DEBUG]   (f) excludes = [**/*Bean.java, **/generated/*.java]
[DEBUG]   (f) format = xml
[DEBUG]   (f) includeTests = false
[DEBUG]   (f) linkXRef = true
[DEBUG]   (f) minimumPriority = 5
[DEBUG]   (f) outputDirectory = /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/target/site
[DEBUG]   (f) project = MavenProject: edu.psu.sweng497a:MFactors30:0.0.1-SNAPSHOT @ /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/pom.xml
[DEBUG]   (f) reactorProjects = [MavenProject: edu.psu.sweng497a:MFactors30:0.0.1-SNAPSHOT @ /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/pom.xml]
[DEBUG]   (f) skip = false
[DEBUG]   (f) sourceEncoding = utf-8
[DEBUG]   (f) targetDirectory = /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/target
[DEBUG]   (f) targetJdk = 1.6
[DEBUG]   (f) testSourceRoots = [/Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/src/test/java]
[DEBUG]   (f) xrefLocation = /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/target/site/xref
[DEBUG]   (f) xrefTestLocation = /Users/Robert/Documents/workspace-sts-3.1.0-psgv/MFactors30/target/site/xref-test
[DEBUG] -- end configuration --
[DEBUG] Preparing ruleset: rulesets/basic.xml
[DEBUG] Before: rulesets/basic.xml After: basic.xml
[DEBUG] The resource 'rulesets/basic.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.FileResourceLoader.
[DEBUG] The resource 'rulesets/basic.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.JarResourceLoader.
[DEBUG] The resource 'rulesets/basic.xml' was found as jar:file:/Users/Robert/.m2/repository/pmd/pmd/4.3/pmd-4.3.jar!/rulesets/basic.xml.
[DEBUG] Preparing ruleset: rulesets/unusedcode.xml
[DEBUG] Before: rulesets/unusedcode.xml After: unusedcode.xml
[DEBUG] The resource 'rulesets/unusedcode.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.FileResourceLoader.
[DEBUG] The resource 'rulesets/unusedcode.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.JarResourceLoader.
[DEBUG] The resource 'rulesets/unusedcode.xml' was found as jar:file:/Users/Robert/.m2/repository/pmd/pmd/4.3/pmd-4.3.jar!/rulesets/unusedcode.xml.
[DEBUG] Preparing ruleset: rulesets/imports.xml
[DEBUG] Before: rulesets/imports.xml After: imports.xml
[DEBUG] The resource 'rulesets/imports.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.FileResourceLoader.
[DEBUG] The resource 'rulesets/imports.xml' was not found with resourceLoader org.codehaus.plexus.resource.loader.JarResourceLoader.
[DEBUG] The resource 'rulesets/imports.xml' was found as jar:file:/Users/Robert/.m2/repository/pmd/pmd/4.3/pmd-4.3.jar!/rulesets/imports.xml.
[WARNING] Unable to locate Source XRef to link to - DISABLED
[DEBUG] Exclusions: **/*~,**/#*#,**/.#*,**/%*%,**/._*,**/CVS,**/CVS/**,**/.cvsignore,**/RCS,**/RCS/**,**/SCCS,**/SCCS/**,**/vssver.scc,**/project.pj,**/.svn,**/.svn/**,**/.arch-ids,**/.arch-ids/**,**/.bzr,**/.bzr/**,**/.MySCMServerInfo,**/.DS_Store,**/.metadata,**/.metadata/**,**/.hg,**/.hg/**,**/.git,**/.git/**,**/BitKeeper,**/BitKeeper/**,**/ChangeSet,**/ChangeSet/**,**/_darcs,**/_darcs/**,**/.darcsrepo,**/.darcsrepo/**,**/-darcs-backup*,**/.darcs-temp-mail,**/*Bean.java,**/generated/*.java
[DEBUG] Inclusions: **/*.java
[DEBUG] Velocimacro : added #link(  href name target img position alt border width height ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #image(  img alt border width height ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #banner(  banner id ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #links(  links ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #breadcrumbs(  breadcrumbs ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #displayTree(  display item ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #menuItem(  item ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #mainMenu(  menus ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #copyright(  ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #publishDate(  position publishDate version ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[DEBUG] Velocimacro : added #poweredByLogo(  poweredBy ) : source = org/apache/maven/doxia/siterenderer/resources/default-site.vm
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

1 个答案:

答案 0 :(得分:1)

我会回答我自己的问题。基本上是用户错误,因为我从父pom中删除了maven-pmd-plugin配置代码的一部分。我这样做是因为从文档中获取的示例显示了正在使用的自定义规则集。我想要默认的规则集。

我花了很长时间才意识到自己的错误,因为插件在没有任何规则集的情况下运行并且没有指出任何问题(至少应该警告没有规则集正在使用吗?)。

以下是所需的正确配置元素:

<!-- Customize rulesets here -->
<rulesets>
  <ruleset>rulesets/basic.xml</ruleset>
  <ruleset>rulesets/naming.xml</ruleset>
  <ruleset>rulesets/design.xml</ruleset>
</rulesets>

我还想指出,这些规则集嵌入在插件jar文件中。你不会在任何地方的文件系统上找到它们。