mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Add javdoc and sources variants to spring-framework dependencies
Closes gh-51494
This commit is contained in:
@@ -38,10 +38,18 @@ import org.gradle.api.GradleException;
|
||||
import org.gradle.api.JavaVersion;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.artifacts.ComponentMetadataDetails;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.ConfigurationContainer;
|
||||
import org.gradle.api.artifacts.Dependency;
|
||||
import org.gradle.api.artifacts.DependencySet;
|
||||
import org.gradle.api.artifacts.ModuleVersionIdentifier;
|
||||
import org.gradle.api.attributes.AttributeContainer;
|
||||
import org.gradle.api.attributes.Bundling;
|
||||
import org.gradle.api.attributes.Category;
|
||||
import org.gradle.api.attributes.DocsType;
|
||||
import org.gradle.api.attributes.Usage;
|
||||
import org.gradle.api.model.ObjectFactory;
|
||||
import org.gradle.api.plugins.JavaBasePlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
@@ -151,6 +159,7 @@ class JavaConventions {
|
||||
configureProhibitedDependencyChecks(project);
|
||||
configureFactoriesFilesChecks(project);
|
||||
configureNullability(project);
|
||||
configureDependencyFixes(project);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -378,4 +387,32 @@ class JavaConventions {
|
||||
}
|
||||
}
|
||||
|
||||
private void configureDependencyFixes(Project project) {
|
||||
project.getDependencies().getComponents().all((details) -> {
|
||||
// https://github.com/spring-projects/spring-framework/issues/37209
|
||||
if ("org.springframework".equals(details.getId().getGroup())) {
|
||||
addDocumentaionVariant(project, details, "javadocElements", DocsType.JAVADOC, "javadoc");
|
||||
addDocumentaionVariant(project, details, "sourcesElements", DocsType.SOURCES, "sources");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void addDocumentaionVariant(Project project, ComponentMetadataDetails details, String name, String docsType,
|
||||
String classifier) {
|
||||
ModuleVersionIdentifier id = details.getId();
|
||||
String file = "%s-%s-%s.jar".formatted(id.getName(), id.getVersion(), classifier);
|
||||
details.addVariant(name, (variant) -> {
|
||||
variant.attributes((attributes) -> addDocumentationAttributes(project, attributes, docsType));
|
||||
variant.withFiles((files) -> files.addFile(file));
|
||||
});
|
||||
}
|
||||
|
||||
private void addDocumentationAttributes(Project project, AttributeContainer attributes, String docsType) {
|
||||
ObjectFactory objects = project.getObjects();
|
||||
attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.class, Usage.JAVA_RUNTIME));
|
||||
attributes.attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.class, Category.DOCUMENTATION));
|
||||
attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.class, Bundling.EXTERNAL));
|
||||
attributes.attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType.class, docsType));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user