mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-07-05 00:56:58 +08:00
Merge branch '3.2.x'
Closes gh-40613
This commit is contained in:
commit
c44e477a77
@ -83,7 +83,6 @@ class MavenPublishingConventions {
|
|||||||
project.getPlugins()
|
project.getPlugins()
|
||||||
.withType(JavaPlugin.class)
|
.withType(JavaPlugin.class)
|
||||||
.all((javaPlugin) -> customizeJavaMavenPublication(publication, project));
|
.all((javaPlugin) -> customizeJavaMavenPublication(publication, project));
|
||||||
suppressMavenOptionalFeatureWarnings(publication);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void customizePom(MavenPom pom, Project project) {
|
private void customizePom(MavenPom pom, Project project) {
|
||||||
@ -102,7 +101,10 @@ class MavenPublishingConventions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void customizeJavaMavenPublication(MavenPublication publication, Project project) {
|
private void customizeJavaMavenPublication(MavenPublication publication, Project project) {
|
||||||
addMavenOptionalFeature(project);
|
addMavenOptionalFeature(publication, project);
|
||||||
|
if (publication.getName().equals("pluginMaven")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
publication.versionMapping((strategy) -> strategy.usage(Usage.JAVA_API, (mappingStrategy) -> mappingStrategy
|
publication.versionMapping((strategy) -> strategy.usage(Usage.JAVA_API, (mappingStrategy) -> mappingStrategy
|
||||||
.fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)));
|
.fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)));
|
||||||
publication.versionMapping(
|
publication.versionMapping(
|
||||||
@ -112,9 +114,10 @@ class MavenPublishingConventions {
|
|||||||
/**
|
/**
|
||||||
* Add a feature that allows maven plugins to declare optional dependencies that
|
* Add a feature that allows maven plugins to declare optional dependencies that
|
||||||
* appear in the POM. This is required to make m2e in Eclipse happy.
|
* appear in the POM. This is required to make m2e in Eclipse happy.
|
||||||
|
* @param publication the project's Maven publication
|
||||||
* @param project the project to add the feature to
|
* @param project the project to add the feature to
|
||||||
*/
|
*/
|
||||||
private void addMavenOptionalFeature(Project project) {
|
private void addMavenOptionalFeature(MavenPublication publication, Project project) {
|
||||||
JavaPluginExtension extension = project.getExtensions().getByType(JavaPluginExtension.class);
|
JavaPluginExtension extension = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||||
extension.registerFeature("mavenOptional",
|
extension.registerFeature("mavenOptional",
|
||||||
(feature) -> feature.usingSourceSet(extension.getSourceSets().getByName("main")));
|
(feature) -> feature.usingSourceSet(extension.getSourceSets().getByName("main")));
|
||||||
@ -123,6 +126,7 @@ class MavenPublishingConventions {
|
|||||||
javaComponent.addVariantsFromConfiguration(
|
javaComponent.addVariantsFromConfiguration(
|
||||||
project.getConfigurations().findByName("mavenOptionalRuntimeElements"),
|
project.getConfigurations().findByName("mavenOptionalRuntimeElements"),
|
||||||
ConfigurationVariantDetails::mapToOptional);
|
ConfigurationVariantDetails::mapToOptional);
|
||||||
|
suppressMavenOptionalFeatureWarnings(publication);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void suppressMavenOptionalFeatureWarnings(MavenPublication publication) {
|
private void suppressMavenOptionalFeatureWarnings(MavenPublication publication) {
|
||||||
|
@ -15,7 +15,34 @@ configurations {
|
|||||||
// Downgrade SLF4J is required for tests to run in Eclipse
|
// Downgrade SLF4J is required for tests to run in Eclipse
|
||||||
resolutionStrategy.force("org.slf4j:slf4j-api:1.7.36")
|
resolutionStrategy.force("org.slf4j:slf4j-api:1.7.36")
|
||||||
}
|
}
|
||||||
all {
|
modernGradleRuntimeClasspath {
|
||||||
|
extendsFrom runtimeClasspath
|
||||||
|
canBeConsumed = false
|
||||||
|
canBeResolved = true
|
||||||
|
}
|
||||||
|
modernGradleRuntimeElements {
|
||||||
|
extendsFrom configurations.implementation, configurations.runtimeOnly
|
||||||
|
canBeConsumed = true
|
||||||
|
canBeResolved = false
|
||||||
|
attributes {
|
||||||
|
attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category, Category.LIBRARY))
|
||||||
|
attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling, Bundling.EXTERNAL))
|
||||||
|
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
|
||||||
|
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, LibraryElements.JAR))
|
||||||
|
attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage, Usage.JAVA_RUNTIME))
|
||||||
|
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "8.7"))
|
||||||
|
}
|
||||||
|
outgoing.artifacts.addAll(configurations.runtimeElements.outgoing.artifacts)
|
||||||
|
}
|
||||||
|
runtimeElements {
|
||||||
|
attributes {
|
||||||
|
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "7.5"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
all { configuration ->
|
||||||
|
if (configuration.name == 'modernGradleRuntimeClasspath') {
|
||||||
|
return
|
||||||
|
}
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
eachDependency { dependency ->
|
eachDependency { dependency ->
|
||||||
// Downgrade Jackson as Gradle cannot cope with 2.15.0's multi-version
|
// Downgrade Jackson as Gradle cannot cope with 2.15.0's multi-version
|
||||||
@ -33,6 +60,10 @@ configurations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
components.java.addVariantsFromConfiguration(configurations.modernGradleRuntimeElements) {
|
||||||
|
mapToMavenScope("runtime")
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-buildpack-platform"))
|
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-buildpack-platform"))
|
||||||
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools"))
|
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools"))
|
||||||
@ -147,3 +178,18 @@ artifacts {
|
|||||||
toolchain {
|
toolchain {
|
||||||
maximumCompatibleJavaVersion = JavaLanguageVersion.of(20)
|
maximumCompatibleJavaVersion = JavaLanguageVersion.of(20)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications.matching { it.name == 'pluginMaven' }.configureEach {
|
||||||
|
versionMapping {
|
||||||
|
allVariants {
|
||||||
|
fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
versionMapping {
|
||||||
|
variant(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "8.7")) {
|
||||||
|
fromResolutionOf("modernGradleRuntimeClasspath")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user