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 ...
Compile Dependencies (0)
| Category/License | Group / Artifact | Version | Updates |
|---|
Managed Dependencies (60)
| Category/License | Group / Artifact | Version | Updates | |
|---|---|---|---|---|
MIT
| com.github.oowekyala.ooxml
»
nice-xml-messages Associates XML DOM nodes to their position in source, to enrich error messages. | 3.1 | ✔ | |
Unlicense
| com.github.oowekyala.treeutils
»
tree-matchers A testing DSL to specify the structure of a tree in a concise and readable way. | 2.1.0 | ✔ | |
Unlicense
| com.github.oowekyala.treeutils
»
tree-printers A set of pretty printers for trees, any trees. | 2.1.0 | ✔ | |
Testing
MIT
| com.github.stefanbirkner
»
system-lambda A collection of functions for testing code which uses java.lang.System. | 1.2.1 | ✔ | |
CPAL 1.0 +1
| com.github.stefanbirkner
»
system-rules A collection of JUnit rules for testing code which uses java.lang.System. | 1.19.0 | ✔ | |
JSON Lib
Apache 2.0
| com.google.code.gson
»
gson Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to ... | 2.14.0 | ✔ | |
Core Utils
Apache 2.0
| com.google.guava
»
guava Guava is a suite of core and expanded libraries that include | 33.7.1-jre | 33.7.2-jre | |
CLI Parser
Apache 2.0
| info.picocli
»
picocli Java command line parser with both an annotations API and a programmatic API. Usage help with ANSI styles and colors. ... | 4.7.7 | ✔ | |
Apache 2.0
| io.kotest
»
kotest-runner-junit5-jvm Kotlin Test Framework | 5.9.1 | 6.2.5 | |
Apache 2.0
| io.kotest
»
kotest-runner-console-jvm Kotlin Test Framework | 5.9.1 | ✔ | |
Apache 2.0
| io.kotest
»
kotest-assertions-core-jvm Kotlin Test Framework | 5.9.1 | 6.2.5 | |
Apache 2.0
| io.kotest
»
kotest-property-jvm Kotlin Test Framework | 5.9.1 | 6.2.5 | |
MIT
| me.tongfei
»
progressbar A terminal-based progress bar for JVM | 0.10.2 | ✔ | |
Bytecode
Apache 2.0
| net.bytebuddy
»
byte-buddy Byte Buddy is a Java library for creating Java classes at run time. | 1.18.14 | ✔ | |
Bytecode
Apache 2.0
| net.bytebuddy
»
byte-buddy-agent The Byte Buddy agent offers convenience for attaching an agent to the local or a remote VM. | 1.18.14 | ✔ | |
MPL 2.0
| net.sf.saxon
»
Saxon-HE The XSLT and XQuery Processor | 12.10 | 13.0 | |
BSD
| net.sourceforge.pmd » pmd-core | 7.28.0 | ✔ | |
BSD
| net.sourceforge.pmd
»
pmd-ant Apache Ant integration for PMD. | 7.28.0 | ✔ | |
BSD
| net.sourceforge.pmd
»
pmd-test-schema Parser for the XML test description format. The module has no dependency | 7.28.0 | ✔ | |
BSD
| net.sourceforge.pmd
»
pmd-test Contains a test framework to test rules. | 7.28.0 | ✔ | |
BSD
| net.sourceforge.pmd
»
pmd-lang-test Module containing utilities to test language implementations, | 7.28.0 | ✔ | |
Parser Generator
BSD 3-clause
| org.antlr
»
antlr4-runtime The ANTLR 4 Runtime | 4.13.2 | ✔ | |
Build Tool
Apache 2.0
| org.apache.ant
»
ant Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as ... | 1.10.18 | ✔ | |
Core Utils
Apache 2.0
| org.apache.commons
»
commons-lang3 Apache Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are ... | 3.20.0 | 3.21.0 | |
String Utils
Apache 2.0
| org.apache.commons
»
commons-text The Commons Text library provides additions to the standard JDK text handling. It includes algorithms for string ... | 1.15.0 | ✔ | |
JVM Languages
Apache 2.0
| org.apache.groovy
»
groovy Groovy: A powerful multi-faceted language for the JVM | 5.1.2 | 6.0.0 | |
Defect Detection
MIT
| org.checkerframework
»
checker-qual checker-qual contains annotations (type qualifiers) that a programmerwrites to specify Java code for type-checking by ... | 3.55.1 | 4.3.0 | |
Testing
BSD 3-clause
| org.hamcrest
»
hamcrest Core API and libraries of hamcrest matcher framework. | 3.0 | ✔ | |
Annotation Lib
Apache 2.0
| org.jetbrains
»
annotations A set of annotations used for code inspection support and code documentation. | 26.1.0 | ✔ | |
JVM Languages
Apache 2.0
| org.jetbrains.kotlin
»
kotlin-stdlib Standard library for the Kotlin Programming Language | 2.2.10 | 2.4.20 | |
Lang Runtime
Apache 2.0
| org.jetbrains.kotlin
»
kotlin-stdlib-jdk8 Kotlin Standard Library JDK 8 extension | 2.2.10 | 2.4.20 | |
Reflection
Apache 2.0
| org.jetbrains.kotlin
»
kotlin-reflect Runtime libraries for Kotlin reflection, which allows you to introspect the structure of your program at runtime. | 2.2.10 | 2.4.20 | |
Testing
Apache 2.0
| org.jetbrains.kotlin
»
kotlin-test-junit Kotlin Test library support for JUnit | 2.2.10 | 2.4.20 | |
EPL 2.0
| org.junit
»
junit-start Module "junit-start" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.jupiter
»
junit-jupiter Module "junit-jupiter" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.jupiter
»
junit-jupiter-api JUnit Jupiter is the API for writing tests using JUnit 5. | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.jupiter
»
junit-jupiter-engine Core package for the JUnit Jupiter test engine. | 6.1.3 | ✔ | |
EPL 2.0
| org.junit.jupiter
»
junit-jupiter-migrationsupport Module "junit-jupiter-migrationsupport" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.jupiter
»
junit-jupiter-params JUnit Jupiter extension for running parameterized tests. | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-commons Module "junit-platform-commons" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-commons Module "junit-platform-commons" of JUnit | 6.1.3 | ✔ | |
EPL 2.0
| org.junit.platform
»
junit-platform-console Module "junit-platform-console" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-engine Module "junit-platform-engine" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-launcher Public API for configuring and launching test plans. | 6.1.3 | ✔ | |
EPL 2.0
| org.junit.platform
»
junit-platform-reporting Module "junit-platform-reporting" of JUnit | 6.1.3 | ✔ | |
EPL 2.0
| org.junit.platform
»
junit-platform-suite Module "junit-platform-suite" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-suite-api Annotations for configuring a test suite on the JUnit Platform. | 6.1.3 | ✔ | |
EPL 2.0
| org.junit.platform
»
junit-platform-suite-engine Module "junit-platform-suite-engine" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.platform
»
junit-platform-testkit Module "junit-platform-testkit" of JUnit | 6.1.3 | ✔ | |
Testing
EPL 2.0
| org.junit.vintage
»
junit-vintage-engine A thin layer on top of JUnit 4 to allow running vintage tests (based on JUnit 3.8 and JUnit 4) with the JUnit Platform ... | 6.1.3 | ✔ | |
Mocking
MIT
| org.mockito
»
mockito-core Mockito mock objects library core API and implementation | 5.23.0 | 5.24.0 | |
Bytecode
BSD 3-clause
| org.ow2.asm
»
asm ASM, a very small and fast Java bytecode manipulation framework | 9.10.1 | ✔ | |
Collections
MIT
| org.pcollections
»
pcollections A Persistent Java Collections Library | 4.0.2 | 5.0.0 | |
Scala Compiler
Apache 2.0
| org.scala-lang
»
scala-reflect Reflection Library for the Scala Programming Language | 2.13.18 | ✔ | |
JVM Languages
Apache 2.0
| org.scala-lang
»
scala-library Standard library for the Scala Programming Language Version 3 | 2.13.18 | 3.9.0 | |
Logging
MIT
| org.slf4j
»
slf4j-api API for SLF4J (The Simple Logging Facade for Java) which serves as a simple facade or abstraction for various logging ... | 1.7.36 | 2.0.20 | |
Logging
MIT
| org.slf4j
»
slf4j-simple Binding/provider for SLF4J, which outputs all events to System.err. Only messages of level INFO and higher are printed. | 1.7.36 | 2.0.20 | |
Logging Bridge
MIT
| org.slf4j
»
jul-to-slf4j Jul-to-slf4j includes a java.util.logging (jul) handler, namely SLF4JBridgeHandler, which routes all incoming jul ... | 1.7.36 | 2.0.20 | |
YAML
Apache 2.0
| org.yaml
»
snakeyaml YAML 1.1 parser and emitter for Java | 2.7 | ✔ | |
MIT
| uk.org.webcompere
»
system-stubs-jupiter JUnit Jupiter Extension for System Stubs | 2.1.8 | ✔ |