PMD Maven JAVA错误::无法找到资源rulesets / comments.xml.确保资源是有效的文件或URL,或者位于CLASSPATH上
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PMD Maven JAVA错误::无法找到资源rulesets / comments.xml.确保资源是有效的文件或URL,或者位于CLASSPATH上,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5662字,纯文字阅读大概需要9分钟。
内容图文
在添加PMD的自定义规则集时,maven产生错误-net.sourceforge.pmd.RuleSetNotFoundException:找不到资源rulesets / comments.xml.确保资源是有效文件或URL或位于CLASSPATH上.
对于其他规则集,如基本,命名等,它没有给出任何错误.但是当我添加新的规则集时,它产生了错误.
我也试过< rule ref =“rulesets / java / comments.xml / CommentRequired”/>但它也给出了同样的错误.
comments.xml已在pmd-5.0.2.jar文件中提供.
我的POM.xml
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>pmd</groupId>
<artifactId>pmd</artifactId>
<version>5.0.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/site/
</outputDirectory>
<reportOutputDirectory>${project.reporting.outputDirectory}/site/
</reportOutputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<targetjdk>1.6</targetjdk>
<skip>fasle</skip>
<failOnViolation>false</failOnViolation>
<failurePriority>4</failurePriority>
<verbose>true</verbose>
<rulesets>
<ruleset>src/main/resources/rulesets/MyRuleSet.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
<execution>
<id>cpd-check</id>
<goals>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
我的自定义规则集文件
<?xml version="1.0"?>
<ruleset>
<rule ref="rulesets/logging-java.xml/SystemPrintln">
<priority>3</priority>
</rule>
<rule ref="rulesets/naming.xml/VariableNamingConventions">
<priority>3</priority>
</rule>
<rule ref="rulesets/design.xml/UseSingleton">
<priority>3</priority>
</rule>
<rule ref="rulesets/controversial.xml/UseConcurrentHashMap">
<priority>3</priority>
</rule>
<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode">
<priority>3</priority>
</rule>
<rule ref="rulesets/comments.xml/CommentRequired">
<priority>3</priority>
</rule>
</ruleset>
这是我的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)
解决方法:
该插件只能理解绝对路径.尝试绝对路径,它应该工作.见documentation.
为了使其独立于本地文件系统布局,请使用${basedir}来引用本地路径.
内容总结
以上是互联网集市为您收集整理的PMD Maven JAVA错误::无法找到资源rulesets / comments.xml.确保资源是有效的文件或URL,或者位于CLASSPATH上全部内容,希望文章能够帮你解决PMD Maven JAVA错误::无法找到资源rulesets / comments.xml.确保资源是有效的文件或URL,或者位于CLASSPATH上所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。