Affects PMD Version: 6.24.0
Make sure, to test with the latest PMD version.
Description:
I am trying to generate pmd and cpd reports for a Salesforce project using mvn site. When i use 6.21.0 version, pmd and cpd html files are generated without any content. 6.24.0 results in this error.
A clear and concise description of what the bug is.
Exception in thread "main" java.util.ServiceConfigurationError: net.sourceforge.pmd.lang.Language: Provider net.sourceforge.pmd.lang.java.JavaLanguageModule could not be instantiated
Exception Stacktrace:
Caused by: java.lang.NoSuchMethodError: net.sourceforge.pmd.lang.metrics.internal.AbstractLanguageMetricsProvider.(Ljava/lang/Class;Ljava/lang/Class;Lnet/sourceforge/pmd/lang/metrics/MetricsComputer;)V
at net.sourceforge.pmd.lang.java.metrics.JavaMetricsProvider.(JavaMetricsProvider.java:22)
# Copy-paste the stack trace here
Exception in thread "main" java.util.ServiceConfigurationError: net.sourceforge.pmd.lang.Language: Provider net.sourceforge.pmd.lang.java.JavaLanguageModule could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at net.sourceforge.pmd.lang.LanguageRegistry.<init>(LanguageRegistry.java:35)
at net.sourceforge.pmd.lang.LanguageRegistry.<clinit>(LanguageRegistry.java:24)
at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.<init>(AbstractApexRule.java:122)
at net.sourceforge.pmd.lang.apex.rule.AbstractStatisticalApexRule.<init>(AbstractStatisticalApexRule.java:20)
at net.sourceforge.pmd.lang.apex.rule.design.ExcessiveNodeCountRule.<init>(ExcessiveNodeCountRule.java:33)
at net.sourceforge.pmd.lang.apex.rule.design.ExcessiveParameterListRule.<init>(ExcessiveParameterListRule.java:18)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at net.sourceforge.pmd.util.ResourceLoader.loadRuleFromClassPath(ResourceLoader.java:139)
at net.sourceforge.pmd.rules.RuleBuilder.build(RuleBuilder.java:196)
at net.sourceforge.pmd.rules.RuleFactory.buildRule(RuleFactory.java:211)
at net.sourceforge.pmd.RuleSetFactory.parseSingleRuleNode(RuleSetFactory.java:616)
at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:505)
at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:409)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:229)
at net.sourceforge.pmd.RuleSetFactory.createRule(RuleSetFactory.java:344)
at net.sourceforge.pmd.RuleSetFactory.parseRuleReferenceNode(RuleSetFactory.java:667)
at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:507)
at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:409)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:229)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:224)
at net.sourceforge.pmd.RuleSetFactory.createRuleSets(RuleSetFactory.java:185)
at net.sourceforge.pmd.RuleSetFactory.createRuleSets(RuleSetFactory.java:169)
at org.apache.maven.plugins.pmd.PmdReport.processFilesWithPMD(PmdReport.java:557)
at org.apache.maven.plugins.pmd.PmdReport.executePmd(PmdReport.java:477)
at org.apache.maven.plugins.pmd.PmdReport.executePmdWithClassloader(PmdReport.java:376)
at org.apache.maven.plugins.pmd.PmdReport.canGenerateReport(PmdReport.java:350)
at org.apache.maven.reporting.exec.MavenReportExecution.canGenerateReport(MavenReportExecution.java:89)
at org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports(AbstractSiteRenderingMojo.java:270)
at org.apache.maven.plugins.site.render.SiteMojo.execute(SiteMojo.java:119)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
Caused by: java.lang.NoSuchMethodError: net.sourceforge.pmd.lang.metrics.internal.AbstractLanguageMetricsProvider.<init>(Ljava/lang/Class;Ljava/lang/Class;Lnet/sourceforge/pmd/lang/metrics/MetricsComputer;)V
at net.sourceforge.pmd.lang.java.metrics.JavaMetricsProvider.<init>(JavaMetricsProvider.java:22)
at net.sourceforge.pmd.lang.java.AbstractJavaHandler.<init>(AbstractJavaHandler.java:52)
at net.sourceforge.pmd.lang.java.JavaLanguageHandler.<init>(JavaLanguageHandler.java:25)
at net.sourceforge.pmd.lang.java.JavaLanguageHandler.<init>(JavaLanguageHandler.java:22)
at net.sourceforge.pmd.lang.java.JavaLanguageModule.<init>(JavaLanguageModule.java:20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 57 more
Steps to reproduce:
<properties>
<pmdVersion>6.24.0</pmdVersion>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-apex</artifactId>
<version>${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmdVersion}</version>
</dependency>
</dependencies>
<configuration>
<linkXRef>true</linkXRef>
<verbose>true</verbose>
<failOnViolation>false</failOnViolation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.0</version>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-apex</artifactId>
<version>${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmdVersion}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sourceforge.pmd/pmd -->
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd</artifactId>
<version>${pmdVersion}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-apex</artifactId>
<version>${pmdVersion}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-site-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
<!-- <dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-apex</artifactId>
<version>${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmdVersion}</version>
</dependency>
</dependencies> -->
<configuration>
<linkXRef>true</linkXRef>
<excludes>
<exclude>SBBQ*</exclude>
</excludes>
<rulesets>
<ruleset>C:\Users\raghunath.srinivasan\Desktop\gpay\pomWrkDir\gpRuleSet.xml</ruleset>
</rulesets>
<language>Apex</language>
<showPmdLog>true</showPmdLog>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</reporting>
Affects PMD Version: 6.24.0
Make sure, to test with the latest PMD version.
Description:
I am trying to generate pmd and cpd reports for a Salesforce project using mvn site. When i use 6.21.0 version, pmd and cpd html files are generated without any content. 6.24.0 results in this error.
A clear and concise description of what the bug is.
Exception in thread "main" java.util.ServiceConfigurationError: net.sourceforge.pmd.lang.Language: Provider net.sourceforge.pmd.lang.java.JavaLanguageModule could not be instantiated
Exception Stacktrace:
Caused by: java.lang.NoSuchMethodError: net.sourceforge.pmd.lang.metrics.internal.AbstractLanguageMetricsProvider.(Ljava/lang/Class;Ljava/lang/Class;Lnet/sourceforge/pmd/lang/metrics/MetricsComputer;)V
at net.sourceforge.pmd.lang.java.metrics.JavaMetricsProvider.(JavaMetricsProvider.java:22)
Steps to reproduce: