fixed default finalguard exclusion prefix
Some checks failed
CI / build (push) Has been cancelled

This commit is contained in:
2026-02-23 18:53:21 +08:00
parent 1fe7ce65f6
commit 0ccffb0642
3 changed files with 40 additions and 7 deletions

View File

@@ -1,19 +1,51 @@
package net.woggioni.finalguard; package net.woggioni.finalguard;
import com.sun.source.tree.*; import com.sun.source.tree.AssignmentTree;
import com.sun.source.util.*; import com.sun.source.tree.BlockTree;
import com.sun.source.tree.CatchTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.CompoundAssignmentTree;
import com.sun.source.tree.EnhancedForLoopTree;
import com.sun.source.tree.ForLoopTree;
import com.sun.source.tree.IdentifierTree;
import com.sun.source.tree.LambdaExpressionTree;
import com.sun.source.tree.MethodTree;
import com.sun.source.tree.Tree;
import com.sun.source.tree.TryTree;
import com.sun.source.tree.UnaryTree;
import com.sun.source.tree.VariableTree;
import com.sun.source.util.JavacTask;
import com.sun.source.util.Plugin;
import com.sun.source.util.TaskEvent;
import com.sun.source.util.TaskListener;
import com.sun.source.util.TreePath;
import com.sun.source.util.TreePathScanner;
import com.sun.source.util.Trees;
import javax.lang.model.element.Element; import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier; import javax.lang.model.element.Modifier;
import javax.tools.Diagnostic; import javax.tools.Diagnostic;
import java.util.*; import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class FinalGuardPlugin implements Plugin { public class FinalGuardPlugin implements Plugin {
public static final String DEFAULT_LEVEL_KEY = "default.level"; public static final String DEFAULT_LEVEL_KEY = "default.level";
public static final String EXCLUDE_KEY = "exclude"; public static final String EXCLUDE_KEY = "exclude";
public static final String IGNORE_ABSTRACT_METHOD_PARAMS_KEY = "net.woggioni.finalguard.ignore.abstract.method.params";
enum VariableType { enum VariableType {
LOCAL_VAR("local.variable.level"), LOCAL_VAR("local.variable.level"),
METHOD_PARAM("method.param.level"), METHOD_PARAM("method.param.level"),
@@ -75,7 +107,8 @@ public class FinalGuardPlugin implements Plugin {
final String[] parts = arg.split("=", 2); final String[] parts = arg.split("=", 2);
if (parts.length == 2) { if (parts.length == 2) {
if (EXCLUDE_KEY.equals(parts[0])) { if (EXCLUDE_KEY.equals(parts[0])) {
excluded.add(parts[1]); final Path path = Paths.get(parts[1]);
excluded.add(path.toAbsolutePath().toString());
} else { } else {
props.put(parts[0], parts[1]); props.put(parts[0], parts[1]);
} }

View File

@@ -67,7 +67,7 @@ public class FinalGuardPlugin implements Plugin<Project> {
appendOption(xpluginArg, "catch.param.level", finalGuardExtension.getCatchParameterLevel()); appendOption(xpluginArg, "catch.param.level", finalGuardExtension.getCatchParameterLevel());
appendOption(xpluginArg, "lambda.param.level", finalGuardExtension.getLambdaParameterLevel()); appendOption(xpluginArg, "lambda.param.level", finalGuardExtension.getLambdaParameterLevel());
if (finalGuardExtension.getSkipGeneratedSources().getOrElse(true)) { if (finalGuardExtension.getSkipGeneratedSources().getOrElse(true)) {
final File generatedSourceDir = options.getGeneratedSourceOutputDirectory().getAsFile().getOrNull(); final File generatedSourceDir = project.getLayout().getBuildDirectory().getAsFile().get();
if (generatedSourceDir != null) { if (generatedSourceDir != null) {
appendOption(xpluginArg, EXCLUDE_KEY, generatedSourceDir.getAbsolutePath()); appendOption(xpluginArg, EXCLUDE_KEY, generatedSourceDir.getAbsolutePath());
} }

View File

@@ -1,5 +1,5 @@
lys.catalog.version=2025.12.27 lys.catalog.version=2025.12.27
version.myGradlePlugins=2026.02.19 version.myGradlePlugins=2026.02.23
version.gradle=9.3.1 version.gradle=9.3.1
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven