mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Use sorted properties to ensure output is repeatable
Closes gh-21593
This commit is contained in:
parent
343e4d4318
commit
b50b00d629
@ -30,6 +30,8 @@ import org.gradle.api.tasks.OutputFile;
|
|||||||
import org.gradle.api.tasks.SourceSet;
|
import org.gradle.api.tasks.SourceSet;
|
||||||
import org.gradle.api.tasks.TaskAction;
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
|
import org.springframework.core.CollectionFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Task} for generating metadata describing a project's auto-configuration
|
* A {@link Task} for generating metadata describing a project's auto-configuration
|
||||||
* classes.
|
* classes.
|
||||||
@ -73,7 +75,7 @@ public class AutoConfigurationMetadata extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Properties readAutoConfiguration() throws IOException {
|
private Properties readAutoConfiguration() throws IOException {
|
||||||
Properties autoConfiguration = new Properties();
|
Properties autoConfiguration = CollectionFactory.createSortedProperties(true);
|
||||||
Properties springFactories = readSpringFactories(
|
Properties springFactories = readSpringFactories(
|
||||||
new File(this.sourceSet.getOutput().getResourcesDir(), "META-INF/spring.factories"));
|
new File(this.sourceSet.getOutput().getResourcesDir(), "META-INF/spring.factories"));
|
||||||
autoConfiguration.setProperty("autoConfigurationClassNames",
|
autoConfiguration.setProperty("autoConfigurationClassNames",
|
||||||
|
@ -32,6 +32,8 @@ import org.gradle.api.tasks.InputFiles;
|
|||||||
import org.gradle.api.tasks.OutputFile;
|
import org.gradle.api.tasks.OutputFile;
|
||||||
import org.gradle.api.tasks.TaskAction;
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
|
import org.springframework.core.CollectionFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Task} for generating metadata that describes a starter.
|
* A {@link Task} for generating metadata that describes a starter.
|
||||||
*
|
*
|
||||||
@ -68,7 +70,7 @@ public class StarterMetadata extends AbstractTask {
|
|||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
void generateMetadata() throws IOException {
|
void generateMetadata() throws IOException {
|
||||||
Properties properties = new Properties();
|
Properties properties = CollectionFactory.createSortedProperties(true);
|
||||||
properties.setProperty("name", getProject().getName());
|
properties.setProperty("name", getProject().getName());
|
||||||
properties.setProperty("description", getProject().getDescription());
|
properties.setProperty("description", getProject().getDescription());
|
||||||
properties.setProperty("dependencies", String.join(",", this.dependencies.getResolvedConfiguration()
|
properties.setProperty("dependencies", String.join(",", this.dependencies.getResolvedConfiguration()
|
||||||
|
@ -42,6 +42,7 @@ import org.gradle.api.tasks.OutputFile;
|
|||||||
import org.gradle.api.tasks.SourceSet;
|
import org.gradle.api.tasks.SourceSet;
|
||||||
import org.gradle.api.tasks.TaskAction;
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
|
import org.springframework.core.CollectionFactory;
|
||||||
import org.springframework.core.io.FileSystemResource;
|
import org.springframework.core.io.FileSystemResource;
|
||||||
import org.springframework.core.type.AnnotationMetadata;
|
import org.springframework.core.type.AnnotationMetadata;
|
||||||
import org.springframework.core.type.classreading.MetadataReader;
|
import org.springframework.core.type.classreading.MetadataReader;
|
||||||
@ -91,7 +92,7 @@ public class TestSliceMetadata extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Properties readTestSlices() throws IOException {
|
private Properties readTestSlices() throws IOException {
|
||||||
Properties testSlices = new Properties();
|
Properties testSlices = CollectionFactory.createSortedProperties(true);
|
||||||
try (URLClassLoader classLoader = new URLClassLoader(
|
try (URLClassLoader classLoader = new URLClassLoader(
|
||||||
StreamSupport.stream(this.sourceSet.getRuntimeClasspath().spliterator(), false).map(this::toURL)
|
StreamSupport.stream(this.sourceSet.getRuntimeClasspath().spliterator(), false).map(this::toURL)
|
||||||
.toArray(URL[]::new))) {
|
.toArray(URL[]::new))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user