JinYong Kim
08/19/2021, 9:48 AMdependencySubstitution {
// substitute(module("$group:${rootProject.name}")).using(project(":"))
all {
(requested as? ModuleComponentSelector)?.let {
if (it.group != rootProject.group) {
return@let
}
val targetProject = if (it.module == rootProject.name) {
rootProject
} else {
findProject(":${it.module}")
} ?: return@let
useTarget(targetProject)
}
}
}
*Dependency Definition (build.gr*adle.kts in sub-project)
https://github.com/jdekim43/j-logger/blob/662882bfe47ba2d19be904d030403ab154af824e/coroutine/build.gradle.kts#L24
implementation("$group:${rootProject.name}:$version")
// It dependent root project
Vampire
08/19/2021, 10:02 AMVampire
08/19/2021, 10:02 AMJinYong Kim
08/20/2021, 2:41 AMVampire
08/20/2021, 10:39 AMJinYong Kim
08/20/2021, 1:48 PMVampire
08/20/2021, 1:53 PMI understand that multiple binary combine to one binary by composite build. right?No. You have project A where you have
dependencies {
implementation("foo:bar:1.2.3")
}
This will publish with a POM depending on foo:bar:1.2.3
and try to get foo:bar:1.2.3
from a repository.
Now if you have build B which builds foo:bar
and you includeBuild
it in the settings script of A,
foo:bar
will no longer be searched for in a repository, but Gradle will automatically build B and use its result in A.Vampire
08/20/2021, 1:54 PMfoo:bar:1.2.3
JinYong Kim
08/23/2021, 3:58 AM