Don't rely on the current project in dep-resolution if module is given
This commit is contained in:
+2
-3
@@ -31,12 +31,11 @@ internal fun configurationToResolveMetadataDependencies(project: Project, reques
|
||||
|
||||
|
||||
class GradleKotlinDependencyGraphResolver(
|
||||
private val project: Project,
|
||||
private val moduleResolver: ModuleDependencyResolver
|
||||
) : KotlinDependencyGraphResolver {
|
||||
|
||||
private fun configurationToResolve(requestingModule: KotlinModule): Configuration =
|
||||
configurationToResolveMetadataDependencies(project, requestingModule)
|
||||
private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration =
|
||||
configurationToResolveMetadataDependencies(requestingModule.project, requestingModule)
|
||||
|
||||
override fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution {
|
||||
if (requestingModule !is KotlinGradleModule)
|
||||
|
||||
+5
-3
@@ -21,15 +21,17 @@ import org.jetbrains.kotlin.project.model.*
|
||||
import java.util.ArrayDeque
|
||||
|
||||
class GradleModuleDependencyResolver(
|
||||
private val project: Project,
|
||||
private val projectStructureMetadataModuleBuilder: ProjectStructureMetadataModuleBuilder,
|
||||
private val projectModuleBuilder: GradleProjectModuleBuilder
|
||||
) : ModuleDependencyResolver {
|
||||
|
||||
private fun configurationToResolve(requestingModule: KotlinModule): Configuration =
|
||||
configurationToResolveMetadataDependencies(project, requestingModule)
|
||||
private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration =
|
||||
configurationToResolveMetadataDependencies(requestingModule.project, requestingModule)
|
||||
|
||||
override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? {
|
||||
require(requestingModule is KotlinGradleModule)
|
||||
val project = requestingModule.project
|
||||
|
||||
val allComponents = configurationToResolve(requestingModule).incoming.resolutionResult.allComponents
|
||||
// TODO: optimize O(n) search, store the resolved components with dependency keys?
|
||||
val component = allComponents.find { it.id.matchesModuleDependency(moduleDependency) }
|
||||
|
||||
+2
-2
@@ -33,10 +33,10 @@ internal class FragmentGranularMetadataResolver(
|
||||
|
||||
private val metadataModuleBuilder = ProjectStructureMetadataModuleBuilder()
|
||||
private val projectModuleBuilder = GradleProjectModuleBuilder(true)
|
||||
private val moduleResolver = GradleModuleDependencyResolver(project, metadataModuleBuilder, projectModuleBuilder)
|
||||
private val moduleResolver = GradleModuleDependencyResolver(metadataModuleBuilder, projectModuleBuilder)
|
||||
private val variantResolver = GradleModuleVariantResolver(project)
|
||||
private val fragmentResolver = DefaultModuleFragmentsResolver(variantResolver)
|
||||
private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(project, moduleResolver)
|
||||
private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(moduleResolver)
|
||||
|
||||
private fun doResolveMetadataDependencies(): Iterable<MetadataDependencyResolution> {
|
||||
val configurationToResolve = configurationToResolveMetadataDependencies(project, requestingFragment.containingModule)
|
||||
|
||||
Reference in New Issue
Block a user