@@ -46,7 +46,7 @@ import org.gradle.api.attributes.Attribute
4646import org.gradle.api.attributes.Usage
4747import org.gradle.api.file.Directory
4848import org.gradle.api.tasks.TaskProvider
49- import org.gradle.configurationcache .extensions.capitalized
49+ import org.gradle.internal .extensions.stdlib .capitalized
5050import org.gradle.process.CommandLineArgumentProvider
5151
5252@Suppress(" UnstableApiUsage" )
@@ -190,7 +190,7 @@ class BetterDynamicFeaturesPlugin : Plugin<Project> {
190190
191191 private fun Project.createSharedBaseConfiguration (): Configuration = configurations.create(CONFIGURATION_BDF ).apply {
192192 isCanBeConsumed = true
193- isCanBeResolved = true
193+ isCanBeResolved = false
194194 isVisible = false
195195
196196 attributes.apply {
@@ -226,6 +226,21 @@ class BetterDynamicFeaturesPlugin : Plugin<Project> {
226226 // This allows us to access artifacts created in this project's tasks via the artifactView APIs
227227 dependencies.add(CONFIGURATION_BDF , this )
228228
229+ // Create a separate resolvable configuration for consuming the dependency graphs
230+ val resolvableConfiguration = configurations.create(" ${CONFIGURATION_BDF } Resolvable" ).apply {
231+ isCanBeConsumed = false
232+ isCanBeResolved = true
233+ isVisible = false
234+ extendsFrom(configuration)
235+
236+ attributes.apply {
237+ attribute(
238+ Usage .USAGE_ATTRIBUTE ,
239+ project.objects.named(Usage ::class .java, ATTRIBUTE_USAGE_METADATA ),
240+ )
241+ }
242+ }
243+
229244 androidComponents.onVariants { variant ->
230245 val task = configureDependencyGraphTask(variant)
231246 configuration.outgoing.variants.getByName(VARIANT_DEPENDENCY_GRAPHS ) { configurationVariant ->
@@ -236,13 +251,13 @@ class BetterDynamicFeaturesPlugin : Plugin<Project> {
236251 }
237252 }
238253
239- val featureDependencyArtifacts = configuration .incoming.artifactView { config ->
254+ val featureDependencyArtifacts = resolvableConfiguration .incoming.artifactView { config ->
240255 config.attributes { container ->
241256 container.attribute(ARTIFACT_TYPE , ARTIFACT_TYPE_FEATURE_DEPENDENCY_GRAPH )
242257 }
243258 }.artifacts.artifactFiles
244259
245- val baseDependencyArtifacts = configuration .incoming.artifactView { config ->
260+ val baseDependencyArtifacts = resolvableConfiguration .incoming.artifactView { config ->
246261 config.attributes { container ->
247262 container.attribute(ARTIFACT_TYPE , ARTIFACT_TYPE_BASE_DEPENDENCY_GRAPH )
248263 }
@@ -455,7 +470,7 @@ class BetterDynamicFeaturesPlugin : Plugin<Project> {
455470 ) { task ->
456471 task.generatedSources.set(implementationsTask.flatMap { it.generatedFilesDirectory })
457472 val compileConfiguration = setupVariantCodegenDependencies(androidVariant.buildType!! )
458- task.compileClasspath.setFrom(project.provider { compileConfiguration.resolvedConfiguration. files })
473+ task.compileClasspath.setFrom(project.provider { compileConfiguration.files })
459474 task.kotlinCompiler.from(resolvableKotlinCompilerConfiguration)
460475 }
461476
0 commit comments