Skip to content

Commit c7c7592

Browse files
committed
Merge branch '2.5.x' into 2.6.x
Closes gh-28878
2 parents 9d4375b + 25bdc09 commit c7c7592

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/MavenPluginPlugin.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.gradle.api.artifacts.ComponentMetadataRule;
3535
import org.gradle.api.artifacts.Configuration;
3636
import org.gradle.api.artifacts.ModuleVersionIdentifier;
37+
import org.gradle.api.artifacts.VariantMetadata;
3738
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
3839
import org.gradle.api.artifacts.result.ResolvedArtifactResult;
3940
import org.gradle.api.attributes.DocsType;
@@ -98,15 +99,15 @@ private void setPackaging(MavenPublication mavenPublication) {
9899
}
99100

100101
private void addPopulateIntTestMavenRepositoryTask(Project project) {
101-
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository = project.getTasks()
102-
.create("runtimeClasspathMavenRepository", RuntimeClasspathMavenRepository.class);
103-
runtimeClasspathMavenRepository.getOutputDirectory()
104-
.set(new File(project.getBuildDir(), "runtime-classpath-repository"));
105102
Configuration runtimeClasspathWithMetadata = project.getConfigurations().create("runtimeClasspathWithMetadata");
106103
runtimeClasspathWithMetadata
107104
.extendsFrom(project.getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME));
108105
runtimeClasspathWithMetadata.attributes((attributes) -> attributes.attribute(DocsType.DOCS_TYPE_ATTRIBUTE,
109106
project.getObjects().named(DocsType.class, "maven-repository")));
107+
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository = project.getTasks()
108+
.create("runtimeClasspathMavenRepository", RuntimeClasspathMavenRepository.class);
109+
runtimeClasspathMavenRepository.getOutputDirectory()
110+
.set(new File(project.getBuildDir(), "runtime-classpath-repository"));
110111
project.getDependencies()
111112
.components((components) -> components.all(MavenRepositoryComponentMetadataRule.class));
112113
Copy task = project.getTasks().create("populateIntTestMavenRepository", Copy.class);
@@ -293,13 +294,18 @@ public MavenRepositoryComponentMetadataRule(ObjectFactory objects) {
293294

294295
@Override
295296
public void execute(ComponentMetadataContext context) {
296-
context.getDetails().maybeAddVariant("compileWithMetadata", "compile", (variant) -> {
297-
variant.attributes((attributes) -> attributes.attribute(DocsType.DOCS_TYPE_ATTRIBUTE,
298-
this.objects.named(DocsType.class, "maven-repository")));
299-
variant.withFiles((files) -> {
300-
ModuleVersionIdentifier id = context.getDetails().getId();
301-
files.addFile(id.getName() + "-" + id.getVersion() + ".pom");
302-
});
297+
context.getDetails().maybeAddVariant("compileWithMetadata", "compile",
298+
(variant) -> configureVariant(context, variant));
299+
context.getDetails().maybeAddVariant("runtimeElementsWithMetadata", "runtimeElements",
300+
(variant) -> configureVariant(context, variant));
301+
}
302+
303+
private void configureVariant(ComponentMetadataContext context, VariantMetadata variant) {
304+
variant.attributes((attributes) -> attributes.attribute(DocsType.DOCS_TYPE_ATTRIBUTE,
305+
this.objects.named(DocsType.class, "maven-repository")));
306+
variant.withFiles((files) -> {
307+
ModuleVersionIdentifier id = context.getDetails().getId();
308+
files.addFile(id.getName() + "-" + id.getVersion() + ".pom");
303309
});
304310
}
305311

@@ -312,8 +318,7 @@ public static class RuntimeClasspathMavenRepository extends DefaultTask {
312318
private final DirectoryProperty outputDirectory;
313319

314320
public RuntimeClasspathMavenRepository() {
315-
this.runtimeClasspath = getProject().getConfigurations()
316-
.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);
321+
this.runtimeClasspath = getProject().getConfigurations().getByName("runtimeClasspathWithMetadata");
317322
this.outputDirectory = getProject().getObjects().directoryProperty();
318323
}
319324

@@ -333,9 +338,11 @@ public void createRepository() {
333338
if (result.getId().getComponentIdentifier() instanceof ModuleComponentIdentifier) {
334339
ModuleComponentIdentifier identifier = (ModuleComponentIdentifier) result.getId()
335340
.getComponentIdentifier();
341+
String fileName = result.getFile().getName()
342+
.replace(identifier.getVersion() + "-" + identifier.getVersion(), identifier.getVersion());
336343
File repositoryLocation = this.outputDirectory.dir(identifier.getGroup().replace('.', '/') + "/"
337-
+ identifier.getModule() + "/" + identifier.getVersion() + "/" + result.getFile().getName())
338-
.get().getAsFile();
344+
+ identifier.getModule() + "/" + identifier.getVersion() + "/" + fileName).get()
345+
.getAsFile();
339346
repositoryLocation.getParentFile().mkdirs();
340347
try {
341348
Files.copy(result.getFile().toPath(), repositoryLocation.toPath(),

0 commit comments

Comments
 (0)