Skip to content

Commit c44e477

Browse files
committed
Merge branch '3.2.x'
Closes gh-40613
2 parents 94c9a5c + c7ec608 commit c44e477

File tree

2 files changed

+54
-4
lines changed

2 files changed

+54
-4
lines changed

buildSrc/src/main/java/org/springframework/boot/build/MavenPublishingConventions.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ private void customizeMavenPublication(MavenPublication publication, Project pro
8383
project.getPlugins()
8484
.withType(JavaPlugin.class)
8585
.all((javaPlugin) -> customizeJavaMavenPublication(publication, project));
86-
suppressMavenOptionalFeatureWarnings(publication);
8786
}
8887

8988
private void customizePom(MavenPom pom, Project project) {
@@ -102,7 +101,10 @@ private void customizePom(MavenPom pom, Project project) {
102101
}
103102

104103
private void customizeJavaMavenPublication(MavenPublication publication, Project project) {
105-
addMavenOptionalFeature(project);
104+
addMavenOptionalFeature(publication, project);
105+
if (publication.getName().equals("pluginMaven")) {
106+
return;
107+
}
106108
publication.versionMapping((strategy) -> strategy.usage(Usage.JAVA_API, (mappingStrategy) -> mappingStrategy
107109
.fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)));
108110
publication.versionMapping(
@@ -112,9 +114,10 @@ private void customizeJavaMavenPublication(MavenPublication publication, Project
112114
/**
113115
* Add a feature that allows maven plugins to declare optional dependencies that
114116
* appear in the POM. This is required to make m2e in Eclipse happy.
117+
* @param publication the project's Maven publication
115118
* @param project the project to add the feature to
116119
*/
117-
private void addMavenOptionalFeature(Project project) {
120+
private void addMavenOptionalFeature(MavenPublication publication, Project project) {
118121
JavaPluginExtension extension = project.getExtensions().getByType(JavaPluginExtension.class);
119122
extension.registerFeature("mavenOptional",
120123
(feature) -> feature.usingSourceSet(extension.getSourceSets().getByName("main")));
@@ -123,6 +126,7 @@ private void addMavenOptionalFeature(Project project) {
123126
javaComponent.addVariantsFromConfiguration(
124127
project.getConfigurations().findByName("mavenOptionalRuntimeElements"),
125128
ConfigurationVariantDetails::mapToOptional);
129+
suppressMavenOptionalFeatureWarnings(publication);
126130
}
127131

128132
private void suppressMavenOptionalFeatureWarnings(MavenPublication publication) {

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,34 @@ configurations {
1515
// Downgrade SLF4J is required for tests to run in Eclipse
1616
resolutionStrategy.force("org.slf4j:slf4j-api:1.7.36")
1717
}
18-
all {
18+
modernGradleRuntimeClasspath {
19+
extendsFrom runtimeClasspath
20+
canBeConsumed = false
21+
canBeResolved = true
22+
}
23+
modernGradleRuntimeElements {
24+
extendsFrom configurations.implementation, configurations.runtimeOnly
25+
canBeConsumed = true
26+
canBeResolved = false
27+
attributes {
28+
attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category, Category.LIBRARY))
29+
attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling, Bundling.EXTERNAL))
30+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
31+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements, LibraryElements.JAR))
32+
attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage, Usage.JAVA_RUNTIME))
33+
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "8.7"))
34+
}
35+
outgoing.artifacts.addAll(configurations.runtimeElements.outgoing.artifacts)
36+
}
37+
runtimeElements {
38+
attributes {
39+
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "7.5"))
40+
}
41+
}
42+
all { configuration ->
43+
if (configuration.name == 'modernGradleRuntimeClasspath') {
44+
return
45+
}
1946
resolutionStrategy {
2047
eachDependency { dependency ->
2148
// Downgrade Jackson as Gradle cannot cope with 2.15.0's multi-version
@@ -33,6 +60,10 @@ configurations {
3360
}
3461
}
3562

63+
components.java.addVariantsFromConfiguration(configurations.modernGradleRuntimeElements) {
64+
mapToMavenScope("runtime")
65+
}
66+
3667
dependencies {
3768
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-buildpack-platform"))
3869
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools"))
@@ -147,3 +178,18 @@ artifacts {
147178
toolchain {
148179
maximumCompatibleJavaVersion = JavaLanguageVersion.of(20)
149180
}
181+
182+
publishing {
183+
publications.matching { it.name == 'pluginMaven' }.configureEach {
184+
versionMapping {
185+
allVariants {
186+
fromResolutionOf(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
187+
}
188+
}
189+
versionMapping {
190+
variant(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, project.objects.named(GradlePluginApiVersion, "8.7")) {
191+
fromResolutionOf("modernGradleRuntimeClasspath")
192+
}
193+
}
194+
}
195+
}

0 commit comments

Comments
 (0)