Fixed dependency resolution of root project
#KT-28389 Fixed
This commit is contained in:
+44
@@ -329,6 +329,50 @@ class NewMultiplatformProjectImportingTest : GradleImportingTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDependencyOnRoot() {
|
||||
configureByFiles()
|
||||
importProject()
|
||||
checkProjectStructure(exhaustiveSourceSourceRootList = false) {
|
||||
|
||||
module("project")
|
||||
module("project_commonMain")
|
||||
module("project_commonTest") {
|
||||
moduleDependency("project_commonMain", DependencyScope.TEST)
|
||||
}
|
||||
module("project_jvmMain") {
|
||||
moduleDependency("project_commonMain", DependencyScope.COMPILE)
|
||||
}
|
||||
module("project_jvmTest") {
|
||||
moduleDependency("project_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("project_commonTest", DependencyScope.TEST)
|
||||
moduleDependency("project_jvmMain", DependencyScope.TEST)
|
||||
}
|
||||
|
||||
module("subproject")
|
||||
module("subproject_commonMain") {
|
||||
moduleDependency("project_commonMain", DependencyScope.COMPILE)
|
||||
}
|
||||
module("subproject_commonTest") {
|
||||
moduleDependency("project_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("subproject_commonMain", DependencyScope.TEST)
|
||||
}
|
||||
module("subproject_jvmMain") {
|
||||
moduleDependency("project_commonMain", DependencyScope.COMPILE)
|
||||
moduleDependency("subproject_commonMain", DependencyScope.COMPILE)
|
||||
moduleDependency("project_jvmMain", DependencyScope.COMPILE)
|
||||
}
|
||||
module("subproject_jvmTest") {
|
||||
moduleDependency("project_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("subproject_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("subproject_commonTest", DependencyScope.TEST)
|
||||
moduleDependency("project_jvmMain", DependencyScope.TEST)
|
||||
moduleDependency("subproject_jvmMain", DependencyScope.TEST)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testNestedDependencies() {
|
||||
configureByFiles()
|
||||
|
||||
@@ -390,7 +390,13 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
||||
"RUNTIME" -> "getRuntimeElementsConfigurationName"
|
||||
else -> return@getOrPut listOf(dependency)
|
||||
}
|
||||
val targets = project.rootProject.getChildProjectByPath(dependency.projectPath)?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val dependencyProject =
|
||||
if (project.rootProject.path == dependency.projectPath)
|
||||
project.rootProject
|
||||
else
|
||||
project.rootProject.getChildProjectByPath(dependency.projectPath)
|
||||
|
||||
val targets = dependencyProject?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val gradleTarget = targets.firstOrNull {
|
||||
val getter = it.javaClass.getMethodOrNull(taskGetterName) ?: return@firstOrNull false
|
||||
getter(it) == artifactConfiguration
|
||||
|
||||
@@ -384,7 +384,13 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
||||
"RUNTIME" -> "getRuntimeElementsConfigurationName"
|
||||
else -> return@getOrPut listOf(dependency)
|
||||
}
|
||||
val targets = project.rootProject.getChildProjectByPath(dependency.projectPath)?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val dependencyProject =
|
||||
if (project.rootProject.path == dependency.projectPath)
|
||||
project.rootProject
|
||||
else
|
||||
project.rootProject.getChildProjectByPath(dependency.projectPath)
|
||||
|
||||
val targets = dependencyProject?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val gradleTarget = targets.firstOrNull {
|
||||
val getter = it.javaClass.getMethodOrNull(taskGetterName) ?: return@firstOrNull false
|
||||
getter(it) == artifactConfiguration
|
||||
|
||||
@@ -390,7 +390,13 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
||||
"RUNTIME" -> "getRuntimeElementsConfigurationName"
|
||||
else -> return@getOrPut listOf(dependency)
|
||||
}
|
||||
val targets = project.rootProject.getChildProjectByPath(dependency.projectPath)?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val dependencyProject =
|
||||
if (project.rootProject.path == dependency.projectPath)
|
||||
project.rootProject
|
||||
else
|
||||
project.rootProject.getChildProjectByPath(dependency.projectPath)
|
||||
|
||||
val targets = dependencyProject?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val gradleTarget = targets.firstOrNull {
|
||||
val getter = it.javaClass.getMethodOrNull(taskGetterName) ?: return@firstOrNull false
|
||||
getter(it) == artifactConfiguration
|
||||
|
||||
@@ -384,7 +384,13 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
||||
"RUNTIME" -> "getRuntimeElementsConfigurationName"
|
||||
else -> return@getOrPut listOf(dependency)
|
||||
}
|
||||
val targets = project.rootProject.getChildProjectByPath(dependency.projectPath)?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val dependencyProject =
|
||||
if (project.rootProject.path == dependency.projectPath)
|
||||
project.rootProject
|
||||
else
|
||||
project.rootProject.getChildProjectByPath(dependency.projectPath)
|
||||
|
||||
val targets = dependencyProject?.getTargets() ?: return@getOrPut listOf(dependency)
|
||||
val gradleTarget = targets.firstOrNull {
|
||||
val getter = it.javaClass.getMethodOrNull(taskGetterName) ?: return@firstOrNull false
|
||||
getter(it) == artifactConfiguration
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10'
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'kotlin-multiplatform'
|
||||
|
||||
kotlin {
|
||||
targets {
|
||||
fromPreset(presets.jvm, 'jvm')
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
include ':subproject'
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
apply plugin: 'kotlin-multiplatform'
|
||||
|
||||
kotlin {
|
||||
targets {
|
||||
fromPreset(presets.jvm, 'jvm')
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
commonMainApi rootProject
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user