Merge pull request #45187 from erichaagdev

* pr/45187:
  Throw `VerificationException` for build verification failures

Closes gh-45187
This commit is contained in:
Phillip Webb
2025-04-14 15:48:43 -07:00
5 changed files with 12 additions and 12 deletions

View File

@@ -31,7 +31,6 @@ import com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.lang.ArchRule;
import com.tngtech.archunit.lang.EvaluationResult;
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.Task;
import org.gradle.api.Transformer;
import org.gradle.api.file.DirectoryProperty;
@@ -49,6 +48,7 @@ import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SkipWhenEmpty;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.VerificationException;
/**
* {@link Task} that checks for architecture problems.
@@ -86,7 +86,7 @@ public abstract class ArchitectureCheck extends DefaultTask {
File outputFile = getOutputDirectory().file("failure-report.txt").get().getAsFile();
writeViolationReport(violations, outputFile);
if (!violations.isEmpty()) {
throw new GradleException("Architecture check failed. See '" + outputFile + "' for details.");
throw new VerificationException("Architecture check failed. See '" + outputFile + "' for details.");
}
}

View File

@@ -34,7 +34,6 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.artifact.versioning.Restriction;
import org.apache.maven.artifact.versioning.VersionRange;
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.file.RegularFile;
@@ -44,6 +43,7 @@ import org.gradle.api.tasks.InputFile;
import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.VerificationException;
import org.springframework.boot.build.bom.Library.Group;
import org.springframework.boot.build.bom.Library.ImportedBom;
@@ -94,7 +94,7 @@ public abstract class CheckBom extends DefaultTask {
System.out.println();
errors.forEach(System.out::println);
System.out.println();
throw new GradleException("Bom check failed. See previous output for details.");
throw new VerificationException("Bom check failed. See previous output for details.");
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ import java.util.Map;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.gradle.api.GradleException;
import org.gradle.api.file.FileTree;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.tasks.InputFiles;
@@ -40,6 +39,7 @@ import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SourceTask;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.VerificationException;
/**
* {@link SourceTask} that checks additional Spring configuration metadata files.
@@ -70,7 +70,7 @@ public abstract class CheckAdditionalSpringConfigurationMetadata extends SourceT
File reportFile = getReportLocation().get().getAsFile();
Files.write(reportFile.toPath(), report, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
if (report.hasProblems()) {
throw new GradleException(
throw new VerificationException(
"Problems found in additional Spring configuration metadata. See " + reportFile + " for details.");
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,7 +30,6 @@ import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.provider.ListProperty;
import org.gradle.api.tasks.Input;
@@ -40,6 +39,7 @@ import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SourceTask;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.VerificationException;
/**
* {@link SourceTask} that checks {@code spring-configuration-metadata.json} files.
@@ -70,7 +70,7 @@ public abstract class CheckSpringConfigurationMetadata extends DefaultTask {
File reportFile = getReportLocation().get().getAsFile();
Files.write(reportFile.toPath(), report, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
if (report.hasProblems()) {
throw new GradleException(
throw new VerificationException(
"Problems found in Spring configuration metadata. See " + reportFile + " for details.");
}
}

View File

@@ -31,7 +31,6 @@ import java.util.Map;
import java.util.Properties;
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.Task;
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.file.FileCollection;
@@ -43,6 +42,7 @@ import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SkipWhenEmpty;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.VerificationException;
import org.gradle.language.base.plugins.LifecycleBasePlugin;
import org.springframework.core.io.support.SpringFactoriesLoader;
@@ -112,7 +112,7 @@ public abstract class CheckFactoriesFile extends DefaultTask {
File outputFile = getOutputDirectory().file("failure-report.txt").get().getAsFile();
writeReport(factoriesFile, problems, outputFile);
if (!problems.isEmpty()) {
throw new GradleException("%s check failed. See '%s' for details".formatted(this.path, outputFile));
throw new VerificationException("%s check failed. See '%s' for details".formatted(this.path, outputFile));
}
}