in sources/amper-cli/src/org/jetbrains/amper/tasks/custom/ResolveCustomExternalDependenciesTask.kt [49:97]
override suspend fun run(
dependenciesResult: List<TaskResult>,
executionContext: TaskGraphExecutionContext,
): Result {
val repositories = module.mavenRepositories.filter { it.resolve }.map { it.toRepository() }
val drContext = Context {
this.repositories = repositories
this.cache = getAmperFileCacheBuilder(userCacheRoot)
this.scope = resolutionScope
this.platforms = setOf(ResolutionPlatform.JVM)
this.jdkVersion = JavaVersion(module.jdkSettings.version)
}
val externalDependencyNodes = externalDependencies.map {
// It's safe to split here, because, validation was already done in the frontend
MavenDependencyNodeWithContext(drContext, it.toDrMavenCoordinates(), isBom = false)
}
val localDependencyNodes = localDependencies.map {
it.buildDependenciesGraph(isTest = false, Platform.JVM, resolutionScope, userCacheRoot, incrementalCache)
}
val root = RootDependencyNodeWithContext(
children = localDependencyNodes + externalDependencyNodes,
templateContext = drContext,
)
val externalDependencies = root.getExternalDependencies()
val dependencyPaths = incrementalCache.execute(
key = taskName.name,
inputValues = mapOf(
"userCacheRoot" to userCacheRoot.path.pathString,
"repositories" to repositories.joinToString("|"),
"resolveScope" to resolutionScope.name,
"dependencies" to externalDependencies.joinToString("|"),
),
inputFiles = emptyList()
) {
spanBuilder(taskName.name)
.setAmperModule(module)
.setListAttribute("dependencies-coordinates", externalDependencies.map { it.toString() })
.use {
val resolvedGraph = mavenResolver.resolve(root, "custom external dependencies")
resolvedGraph.toIncrementalCacheResult()
}
}.outputFiles
return Result(
resolvedFiles = dependencyPaths,
)
}