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()
|
||||
.withType(JavaPlugin.class)
|
||||
.all((javaPlugin) -> customizeJavaMavenPublication(publication, project));
|
||||
suppressMavenOptionalFeatureWarnings(publication);
|
||||
}
|
||||
|
||||
private void customizePom(MavenPom pom, Project project) {
|
||||
|
@ -102,7 +101,10 @@ class MavenPublishingConventions {
|
|||
}
|
||||
|
||||
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
|
||||
.fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)));
|
||||
publication.versionMapping(
|
||||
|
@ -112,9 +114,10 @@ class MavenPublishingConventions {
|
|||
/**
|
||||
* 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.
|
||||
* @param publication the project's Maven publication
|
||||
* @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);
|
||||
extension.registerFeature("mavenOptional",
|
||||
(feature) -> feature.usingSourceSet(extension.getSourceSets().getByName("main")));
|
||||
|
@ -123,6 +126,7 @@ class MavenPublishingConventions {
|
|||
javaComponent.addVariantsFromConfiguration(
|
||||
project.getConfigurations().findByName("mavenOptionalRuntimeElements"),
|
||||
ConfigurationVariantDetails::mapToOptional);
|
||||
suppressMavenOptionalFeatureWarnings(publication);
|
||||
}
|
||||
|
||||
private void suppressMavenOptionalFeatureWarnings(MavenPublication publication) {
|
||||
|
|
|
@ -15,7 +15,34 @@ configurations {
|
|||
// Downgrade SLF4J is required for tests to run in Eclipse
|
||||
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 {
|
||||
eachDependency { dependency ->
|
||||
// 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 {
|
||||
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-buildpack-platform"))
|
||||
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools"))
|
||||
|
@ -147,3 +178,18 @@ artifacts {
|
|||
toolchain {
|
||||
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