I have tried to build project in gradle
with 3 modules, where:
1) module1
- common module with expect
classes
empty build.gradle dependencies
2) module2
- common module with expect
classes and with dependency from module 1:
build.gradle dependencies: compile project(':module1')
2) module3
- jvm platform module
build.gradle dependencies: expectedBy project(':module2')
When I try to compile a project, it appears errors in compilation stage of module3
, that classes from module2
couldn't find classes from module1
.
Kotlin 1.2.30
Gradle 4.6
Java 1.8_161
Does It possible to use multiple common modules together in one project?
And does it possible to have expect
classes in each common module?
Currently, using common declarations from multiple common modules is not supported, but it is planned for future versions.
In particular, once the fix for KT-22864 is released, it will allow you to add both module1
and module2
as expectedBy
dependencies to module3
. There's currently no public preview build with the fix, please stay tuned for 1.2.40 EAPs.
If you really want to try it early, you can use a dev build (e.g. 1.2.40-dev-754
from the https://dl.bintray.com/kotlin/kotlin-dev
Maven repository).
You can also try a dev build of the IDE plugin (from here) to make the IDE import and analyze multiple expectedBy
dependencies properly (1.2.30 can only import one such dependency).