4.0.0 net.sourceforge.pmd pmd 7.3.0 pom PMD PMD is an extensible multilanguage static code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It's mainly concerned with Java and Apex, but supports 16 other languages. It comes with 400+ built-in rules. It can be extended with custom rules. It uses JavaCC and Antlr to parse source files into abstract syntax trees (AST) and runs rules against them to find violations. Rules can be written in Java or using a XPath query. Currently, PMD supports Java, JavaScript, Salesforce.com Apex and Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML and XSL. Scala is supported, but there are currently no Scala rules available. Additionally, it includes CPD, the copy-paste-detector. CPD finds duplicated code in Coco, C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex and Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML and XSL. https://pmd.github.io/ https://github.com/pmd/pmd/actions 2002 BSD-style http://pmd.sourceforge.net/license.html repo PMD development https://lists.sourceforge.net/lists/listinfo/pmd-devel https://lists.sourceforge.net/lists/listinfo/pmd-devel https://sourceforge.net/p/pmd/mailman/pmd-devel PMD commits https://lists.sourceforge.net/lists/listinfo/pmd-commits https://lists.sourceforge.net/lists/listinfo/pmd-commits https://sourceforge.net/p/pmd/mailman/pmd-commits github github contributors github https://github.com/pmd/pmd/graphs/contributors scm:git:git://github.com/pmd/pmd.git scm:git:ssh://git@github.com/pmd/pmd.git https://github.com/pmd/pmd pmd_releases/7.3.0 ossrh https://oss.sonatype.org/content/repositories/snapshots ossrh https://oss.sonatype.org/service/local/staging/deploy/maven2/ PMD https://pmd.github.io/ https://github.com/pmd/pmd/issues 2024-06-28T08:42:40Z 8 1.8 1.8 ${maven.compiler.test.target} 1.9.24 5.9.1 5.8.2 1.9.20 5.0 3.2.5 10.14.0 3.3.1 3.22.0 1.10.14 3.6.3 4.9.3 1.7.36 12.4 UTF-8 UTF-8 https://docs.pmd-code.org/snapshot -Xmx512m -Dfile.encoding=${project.build.sourceEncoding} ${extraArgLine} 26 7.2.0 ${settings.localRepository}/net/java/dev/javacc/javacc/${javacc.version}/javacc-${javacc.version}.jar ${project.build.directory}/generated-sources/javacc ${project.basedir}/../javacc-wrapper.xml ${project.build.directory}/generated-sources/antlr4 ${project.basedir}/../antlr4-wrapper.xml false org.antlr antlr4-maven-plugin ${antlr.version} ${project.build.sourceEncoding} true true antlr antlr4 generate-sources org.apache.maven.plugins maven-antrun-plugin 3.1.0 net.java.dev.javacc javacc ${javacc.version} org.apache.ant ant ${ant.version} org.apache.maven.plugins maven-assembly-plugin 3.6.0 org.apache.maven.plugins maven-dependency-plugin 3.6.1 org.apache.maven.plugins maven-release-plugin 3.0.1 pmd-release,sign true true true pmd_releases/@{project.version} deploy org.apache.maven.plugins maven-clean-plugin 3.3.2 org.codehaus.mojo build-helper-maven-plugin 3.5.0 add-kotlin-source-dir add-source ${project.basedir}/src/main/kotlin add-kotlin-test-source-dir add-test-source ${project.basedir}/src/test/kotlin kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version} kotlin-compile compile ${project.basedir}/src/main/kotlin ${project.basedir}/src/main/java kotlin-test-compile test-compile ${project.basedir}/src/test/kotlin ${project.basedir}/src/test/java org.apache.maven.plugins maven-compiler-plugin 3.12.1 ${java.version} default-compile none default-testCompile none java-compile compile compile java-test-compile test-compile testCompile ${maven.compiler.test.source} ${maven.compiler.test.target} org.apache.maven.plugins maven-deploy-plugin 3.1.1 org.apache.maven.plugins maven-install-plugin 3.1.1 org.apache.maven.plugins maven-jar-plugin 3.3.0 org.apache.maven.plugins maven-resources-plugin 3.3.1 ${project.build.sourceEncoding} org.apache.maven.plugins maven-shade-plugin 3.5.2 org.apache.maven.plugins maven-surefire-plugin ${surefire.version} alphabetical ${project.build.testResources[0].directory} true true true false true true true true true true true true net.sourceforge.pmd pmd-build-tools-config ${pmd.build-tools.version} org.codehaus.mojo exec-maven-plugin 3.2.0 org.apache.maven.plugins maven-source-plugin 3.3.1 org.apache.maven.plugins maven-javadoc-plugin ${javadoc.plugin.version} true all true *.internal,*.internal.*,*.internal.*.* false ${project.basedir}/../pmd-core/target/apidocs ../../pmd-core/${project.version} ${project.basedir}/../pmd-test/target/apidocs ../../pmd-test/${project.version} ${project.basedir}/../pmd-lang-test/target/dokkaJavadocJar ../../pmd-lang-test/${project.version} apiNote a API Note: implSpec a Implementation Requirements: implNote a Implementation Note: param return throws since version serialData see org.jetbrains.dokka dokka-maven-plugin ${dokka.version} ${dokka.skip} https://docs.pmd-code.org/apidocs/pmd-core/${project.version}/ file://${project.basedir}/../pmd-core/target/apidocs/element-list https://docs.pmd-code.org/apidocs/pmd-test/${project.version}/ file://${project.basedir}/../pmd-test/target/apidocs/element-list https://docs.pmd-code.org/apidocs/pmd-lang-test/${project.version}/ file:///${project.basedir}/../pmd-lang-test/target/dokkaJavadocJar/element-list package javadocJar org.apache.maven.plugins maven-checkstyle-plugin ${checkstyle.plugin.version} checkstyle-check verify check com.puppycrawl.tools checkstyle ${checkstyle.version} net.sourceforge.pmd pmd-build-tools-config ${pmd.build-tools.version} /net/sourceforge/pmd/pmd-checkstyle-config.xml /net/sourceforge/pmd/pmd-checkstyle-suppressions.xml true true **/*.java,**/*.kt **/*.properties,**/*.less org.apache.maven.plugins maven-enforcer-plugin 3.4.1 org.apache.maven.plugins maven-failsafe-plugin ${surefire.version} org.apache.maven.plugins maven-pmd-plugin ${pmd.plugin.version} pmd-main verify pmd check cpd cpd-check ${pmd.skip} 100 /net/sourceforge/pmd/pmd-dogfood-config.xml target/generated-sources/javacc target/generated-sources/antlr4 pmd-test verify pmd check ${pmd.skip} ${project.build.directory}/pmdTest/ true /net/sourceforge/pmd/pmd-test-dogfood-config.xml false 1.${java.version} false 2 true true true net.sourceforge.pmd pmd-core 7.1.0 net.sourceforge.pmd pmd-java 7.1.0 net.sourceforge.pmd pmd-jsp 7.1.0 net.sourceforge.pmd pmd-javascript 7.1.0 net.sourceforge.pmd pmd-build-tools-config ${pmd.build-tools.version} org.apache.maven.plugins maven-site-plugin 4.0.0-M13 org.codehaus.mojo versions-maven-plugin 2.16.2 org.sonatype.plugins nexus-staging-maven-plugin 1.6.13 org.jacoco jacoco-maven-plugin 0.8.11 org.cyclonedx cyclonedx-maven-plugin 2.7.11 org.eclipse.m2e lifecycle-mapping 1.0.0 org.apache.maven.plugins maven-antrun-plugin [1.7,) run false true com.github.siom79.japicmp japicmp-maven-plugin 0.20.0 true true @net.sourceforge.pmd.annotation.Experimental @net.sourceforge.pmd.annotation.InternalApi japicmp verify cmp org.apache.maven.plugins maven-enforcer-plugin enforce-versions enforce [11,) enforce-no-snapshots enforce No Snapshots Allowed! true enforce-plugin-versions enforce Best Practice is to always define plugin versions! org.apache.maven.plugins maven-pmd-plugin org.apache.maven.plugins maven-checkstyle-plugin org.apache.maven.plugins maven-javadoc-plugin attach-javadocs jar org.apache.maven.plugins maven-source-plugin attach-sources jar org.sonatype.plugins nexus-staging-maven-plugin true ossrh https://oss.sonatype.org/ org.cyclonedx cyclonedx-maven-plugin package makeAggregateBom pmd-cli pmd-dist com.github.siom79.japicmp japicmp-maven-plugin org.antlr antlr4-runtime ${antlr.version} org.apache.ant ant ${ant.version} info.picocli picocli 4.7.5 me.tongfei progressbar 0.9.5 org.ow2.asm asm 9.6 org.pcollections pcollections 3.2.0 net.sourceforge.pmd pmd-core ${project.version} net.sourceforge.pmd pmd-ant ${project.version} net.sourceforge.pmd pmd-test-schema ${project.version} org.checkerframework checker-qual 2.11.1 net.sf.saxon Saxon-HE ${saxon.version} org.apache.commons commons-lang3 3.14.0 org.apache.commons commons-text 1.11.0 org.slf4j slf4j-api ${slf4j.version} org.slf4j slf4j-simple ${slf4j.version} org.slf4j jul-to-slf4j ${slf4j.version} org.apache.groovy groovy 4.0.19 com.google.code.gson gson 2.10.1 org.yaml snakeyaml 2.2 com.google.guava guava 33.0.0-jre org.scala-lang scala-reflect 2.13.13 org.scala-lang scala-library 2.13.13 net.sourceforge.pmd pmd-test ${project.version} test net.sourceforge.pmd pmd-lang-test ${project.version} test com.github.oowekyala.ooxml nice-xml-messages 3.1 com.github.oowekyala.treeutils tree-matchers 2.1.0 test com.github.oowekyala.treeutils tree-printers 2.1.0 test org.hamcrest hamcrest 2.2 test org.junit junit-bom ${junit5.version} pom import org.junit.platform junit-platform-suite 1.10.2 test com.github.stefanbirkner system-lambda 1.2.1 test org.mockito mockito-core 4.11.0 test net.bytebuddy byte-buddy 1.14.12 test net.bytebuddy byte-buddy-agent 1.14.12 test com.github.stefanbirkner system-rules 1.19.0 test junit junit-dep org.jetbrains.kotlin kotlin-stdlib ${kotlin.version} runtime org.jetbrains.kotlin kotlin-stdlib-jdk8 ${kotlin.version} runtime org.jetbrains.kotlin kotlin-reflect ${kotlin.version} test org.jetbrains.kotlin kotlin-test-junit ${kotlin.version} test junit junit io.kotest kotest-runner-junit5-jvm ${kotest.version} test junit junit io.kotest kotest-runner-console-jvm ${kotest.version} test io.kotest kotest-assertions-core-jvm ${kotest.version} test io.kotest kotest-property-jvm ${kotest.version} test org.jetbrains annotations 24.1.0 test com.google.protobuf protobuf-java 3.25.3 org.junit.platform junit-platform-commons 1.8.2 test central Central Repository https://repo.maven.apache.org/maven2 true never false sonatype-nexus-snapshots Sonatype Nexus Snapshots https://oss.sonatype.org/content/repositories/snapshots false true central Central Repository https://repo.maven.apache.org/maven2 true never false sonatype-nexus-plugin-snapshots Sonatype Nexus Snapshots https://oss.sonatype.org/content/repositories/snapshots false true apache.snapshots Apache Snapshot Repository https://repository.apache.org/snapshots false true with-slf4j-impl false org.slf4j slf4j-simple Java 18+ [18,) -Djava.security.manager=allow pmd-release https://docs.pmd-code.org/pmd-doc-${project.version} sign org.apache.maven.plugins maven-gpg-plugin 3.1.0 sign-artifacts verify sign doclint org.apache.maven.plugins maven-javadoc-plugin true fastSkip true true true true true true true true coveralls org.jacoco jacoco-maven-plugin default-prepare-agent prepare-agent com.github.hazendaz.maven coveralls-maven-plugin 4.5.0-M3 sonar https://sonarcloud.io pmd 1.8 org.sonarsource.scanner.maven sonar-maven-plugin 3.10.0.2594 org.jacoco jacoco-maven-plugin default-prepare-agent prepare-agent cli-dist-modules !skip-cli-dist pmd-cli pmd-dist pmd-apex pmd-coco pmd-core pmd-cpp pmd-cs pmd-dart pmd-doc pmd-fortran pmd-gherkin pmd-go pmd-groovy pmd-html pmd-lua pmd-java pmd-javascript pmd-jsp pmd-julia pmd-kotlin pmd-lang-test pmd-matlab pmd-modelica pmd-objectivec pmd-perl pmd-php pmd-plsql pmd-python pmd-ruby pmd-scala-modules/pmd-scala-common pmd-scala-modules/pmd-scala_2.13 pmd-scala-modules/pmd-scala_2.12 pmd-swift pmd-test pmd-test-schema pmd-tsql pmd-velocity pmd-visualforce pmd-xml pmd-ant pmd-languages-deps