PMD+;Maven+;JAVA错误::Can';找不到资源规则集/comments.xml。确保资源是有效的文件或URL,或者位于类路径上

PMD+;Maven+;JAVA错误::Can';找不到资源规则集/comments.xml。确保资源是有效的文件或URL,或者位于类路径上,java,maven,pmd,Java,Maven,Pmd,添加PMD的自定义规则集时,maven产生错误-net.sourceforge.PMD.RuleSetNotFoundException:找不到资源规则集/comments.xml。请确保资源是有效的文件或URL或位于类路径上 对于其他规则集,如基本、命名等,它不会给出任何错误。但当我添加新规则集时,它会产生错误。 我也尝试了,但它也给出了相同的错误。 comments.xml已在pmd-5.0.2.jar文件中提供 我的POM.xml 朱尼特 朱尼特 4.11 测试 偏振模色散 偏振模色散

添加PMD的自定义规则集时,maven产生错误-
net.sourceforge.PMD.RuleSetNotFoundException:找不到资源规则集/comments.xml。请确保资源是有效的文件或URL或位于类路径上

对于其他规则集,如基本、命名等,它不会给出任何错误。但当我添加新规则集时,它会产生错误。 我也尝试了
,但它也给出了相同的错误。 comments.xml已在pmd-5.0.2.jar文件中提供

我的POM.xml


朱尼特
朱尼特
4.11
测试
偏振模色散
偏振模色散
5.0.2
org.apache.maven.plugins
maven javadoc插件
2.9.1
附加javadocs
罐子
${project.build.directory}/site/
${project.reporting.outputDirectory}/site/
org.apache.maven.plugins
maven pmd插件
2.7.1
1.6
时装
假的
4.
真的
src/main/resources/ruleset/MyRuleSet.xml
检查
检查
cpd检查
cpd检查
org.apache.maven.plugins
maven jxr插件
2.3
我的自定义规则集文件


3.
3.
3.
3.
3.
3.
这是我的maven stacktrace

    INFO] ------------------------------------------------------------------------
net.sourceforge.pmd.RuleSetNotFoundException: Can't find resource rulesets/comments.xml. Make sure the resource is a valid file or URL or is on the CLASSPATH
    at net.sourceforge.pmd.util.ResourceLoader.loadResourceAsStream(ResourceLoader.java:28)
    at net.sourceforge.pmd.RuleSetFactory.parseRuleReferenceNode(RuleSetFactory.java:365)
    at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:255)
    at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:209)
    at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:157)
    at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:146)
    at org.apache.maven.plugin.pmd.PmdReport.generateReport(PmdReport.java:222)
    at org.apache.maven.plugin.pmd.PmdReport.execute(PmdReport.java:175)
    at org.apache.maven.plugin.pmd.PmdReport.executeReport(PmdReport.java:149)
    at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:190)
    at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:99)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:364)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:198)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:318)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357)

插件只理解绝对路径。尝试一个绝对路径,它应该会工作。见

为了使其独立于本地文件系统布局,请使用
${basedir}
引用本地路径。

它必须是“ruleset/java/comments.xml”而不是“ruleset/comments.xml”


我的怀疑是,您从文档的某个部分获取的“ruleset/comments.xml”已经过时,或者在发布之前根本没有经过测试。

comments.xml与其他规则集位于同一位置,即在pmd-5.0.2.jar的ruleset.java包中。这个jar文件在类路径中已经可用。除了empty.xml comment.xml和string.xml之外,其他规则集都在工作。根据文档,本地文件的路径不正确。它应该是一条绝对的道路。尝试从自定义文件中删除comments.xml声明。那么,没有错误吗?好的。我真的无法解释。如果我处在你的位置,无论如何,我会按照文件中的建议去做。