Если мы хотим построить мультиплатформенный проект с Kotlin, и у нас есть такая структура:
common
android
android1
android2
backend
api1
api2
, где в модуле common
у нас есть 3 цели / пресета:
jvm
(с общим кодом для всех проектов на основе jvm) jvmAndroid
(с общим кодом для всех проектов jvm android, зависит от jvm) jvmApi
(общий код для всех проектов jvm api зависит от jvm)
Как правильно настроить файлы build.gradle
s, чтобы они зависели только от правильной предустановки / цели?
Например, если мы хотим использовать общий модуль в качестве зависимости в других наших проектах, нам нужно использовать что-то вроде:
dependencies {
implementation project(':common')
}
Но возможно ли использовать только правильную часть общего модуля?Примерно так (для android 1 и 2)?
dependencies {
implementation project(':common:jvmAndroid')
}
В противном случае, когда мы используем implementation project(':common')
, это получит все пресеты / цели jvm, но некоторый код будет иметь смысл или будет работать только на правильной платформе (вэто чехол андроид или api).