[java] Add new versions 21 and 21-preview
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: Java support
|
||||
permalink: pmd_languages_java.html
|
||||
author: Clément Fournier
|
||||
last_updated: March 2021 (7.0.0)
|
||||
last_updated: August 2023 (7.0.0)
|
||||
tags: [languages]
|
||||
summary: "Java-specific features and guidance"
|
||||
---
|
||||
@@ -15,8 +15,10 @@ Usually the latest non-preview Java Version is the default version.
|
||||
|
||||
| Java Version | Alias | Supported by PMD since |
|
||||
|--------------|-------|------------------------|
|
||||
| 21-preview | | 7.0.0 |
|
||||
| 21 (default) | | 7.0.0 |
|
||||
| 20-preview | | 6.55.0 |
|
||||
| 20 (default) | | 6.55.0 |
|
||||
| 20 | | 6.55.0 |
|
||||
| 19-preview | | 6.48.0 |
|
||||
| 19 | | 6.48.0 |
|
||||
| 18 | | 6.44.0 |
|
||||
@@ -39,10 +41,10 @@ Usually the latest non-preview Java Version is the default version.
|
||||
## Using Java preview features
|
||||
|
||||
In order to analyze a project with PMD that uses preview language features, you'll need to enable
|
||||
it via the environment variable `PMD_JAVA_OPTS` and select the new language version, e.g. `20-preview`:
|
||||
it via the environment variable `PMD_JAVA_OPTS` and select the new language version, e.g. `21-preview`:
|
||||
|
||||
export PMD_JAVA_OPTS=--enable-preview
|
||||
pmd check --use-version java-20-preview ...
|
||||
pmd check --use-version java-21-preview ...
|
||||
|
||||
Note: we only support preview language features for the latest two java versions.
|
||||
|
||||
|
@@ -213,7 +213,7 @@ accordingly and this rule won't be executed.
|
||||
The specific version of a language to be used is selected via the `sourceLanguage`
|
||||
nested element. Example:
|
||||
|
||||
<sourceLanguage name="java" version="17"/>
|
||||
<sourceLanguage name="java" version="21"/>
|
||||
|
||||
The available versions depend on the language. You can get a list of the currently supported language versions
|
||||
via the CLI option `--help`.
|
||||
|
@@ -47,8 +47,10 @@ public class JavaLanguageModule extends LanguageModuleBase {
|
||||
.addVersion("18")
|
||||
.addVersion("19")
|
||||
.addVersion("19-preview")
|
||||
.addDefaultVersion("20") // 20 is the default
|
||||
.addVersion("20-preview"));
|
||||
.addVersion("20")
|
||||
.addVersion("20-preview")
|
||||
.addDefaultVersion("21") // 21 is the default
|
||||
.addVersion("21-preview"));
|
||||
}
|
||||
|
||||
|
||||
|
@@ -33,7 +33,8 @@ enum class JavaVersion : Comparable<JavaVersion> {
|
||||
J17,
|
||||
J18,
|
||||
J19, J19__PREVIEW,
|
||||
J20, J20__PREVIEW;
|
||||
J20, J20__PREVIEW,
|
||||
J21, J21__PREVIEW;
|
||||
|
||||
/** Name suitable for use with e.g. [JavaParsingHelper.parse] */
|
||||
val pmdName: String = name.removePrefix("J").replaceFirst("__", "-").replace('_', '.').lowercase()
|
||||
|
Reference in New Issue
Block a user