We have a multi-project build with sub-project X
that transitively depends on sub-projects A
, B
and C
. There is another sub-project Y
that depends on X
. Overall the graph is as follows:
Y -> X -> A, B, C
The problem is that for certain reasons project Y
needs, to exclude the transitive dependency on A
(i.e. the resolved default config of Y
should contain only X, B, C
). Typically we would do this with something like this in the project Y
build:
dependencies {
compile project(':X'), { exclude project: ':A' }
}
Except it does not work. The exclude notation relies on group
and module
.
I tried to use the project group and name, but that didn’t seem to work.
Then I tried to hack the model by manually removing the project from the resolved configuration, but that turned out to be too deep of a rabit hole.
Am I missing anything obvious (short from reorganizing the actual codebase)?