|
26 | 26 | import org.gradle.api.Project;
|
27 | 27 | import org.gradle.api.Task;
|
28 | 28 | import org.gradle.api.artifacts.Configuration;
|
| 29 | +import org.gradle.api.attributes.Attribute; |
29 | 30 | import org.gradle.api.attributes.AttributeContainer;
|
30 |
| -import org.gradle.api.attributes.Bundling; |
31 |
| -import org.gradle.api.attributes.LibraryElements; |
32 |
| -import org.gradle.api.attributes.Usage; |
33 | 31 | import org.gradle.api.file.FileCollection;
|
34 |
| -import org.gradle.api.model.ObjectFactory; |
35 | 32 | import org.gradle.api.plugins.ApplicationPlugin;
|
36 | 33 | import org.gradle.api.plugins.BasePlugin;
|
37 | 34 | import org.gradle.api.plugins.ExtensionContainer;
|
38 | 35 | import org.gradle.api.plugins.JavaApplication;
|
39 | 36 | import org.gradle.api.plugins.JavaPlugin;
|
40 | 37 | import org.gradle.api.plugins.JavaPluginExtension;
|
41 | 38 | import org.gradle.api.provider.Provider;
|
| 39 | +import org.gradle.api.provider.ProviderFactory; |
42 | 40 | import org.gradle.api.tasks.SourceSet;
|
43 | 41 | import org.gradle.api.tasks.SourceSetContainer;
|
44 | 42 | import org.gradle.api.tasks.TaskProvider;
|
@@ -275,18 +273,21 @@ private void configureAdditionalMetadataLocations(JavaCompile compile) {
|
275 | 273 | .ifPresent((locations) -> compile.doFirst(new AdditionalMetadataLocationsConfigurer(locations)));
|
276 | 274 | }
|
277 | 275 |
|
| 276 | + @SuppressWarnings({ "rawtypes", "unchecked" }) |
278 | 277 | private void configureProductionRuntimeClasspathConfiguration(Project project) {
|
279 | 278 | Configuration productionRuntimeClasspath = project.getConfigurations()
|
280 | 279 | .create(SpringBootPlugin.PRODUCTION_RUNTIME_CLASSPATH_CONFIGURATION_NAME);
|
281 |
| - AttributeContainer attributes = productionRuntimeClasspath.getAttributes(); |
282 |
| - ObjectFactory objectFactory = project.getObjects(); |
283 |
| - attributes.attribute(Usage.USAGE_ATTRIBUTE, objectFactory.named(Usage.class, Usage.JAVA_RUNTIME)); |
284 |
| - attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, objectFactory.named(Bundling.class, Bundling.EXTERNAL)); |
285 |
| - attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, |
286 |
| - objectFactory.named(LibraryElements.class, LibraryElements.JAR)); |
287 | 280 | productionRuntimeClasspath.setVisible(false);
|
288 | 281 | Configuration runtimeClasspath = project.getConfigurations()
|
289 | 282 | .getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);
|
| 283 | + productionRuntimeClasspath.attributes((attributes) -> { |
| 284 | + ProviderFactory providers = project.getProviders(); |
| 285 | + AttributeContainer sourceAttributes = runtimeClasspath.getAttributes(); |
| 286 | + for (Attribute attribute : sourceAttributes.keySet()) { |
| 287 | + attributes.attributeProvider(attribute, |
| 288 | + providers.provider(() -> sourceAttributes.getAttribute(attribute))); |
| 289 | + } |
| 290 | + }); |
290 | 291 | productionRuntimeClasspath.setExtendsFrom(runtimeClasspath.getExtendsFrom());
|
291 | 292 | productionRuntimeClasspath.setCanBeResolved(runtimeClasspath.isCanBeResolved());
|
292 | 293 | productionRuntimeClasspath.setCanBeConsumed(runtimeClasspath.isCanBeConsumed());
|
|
0 commit comments