Плагины логики сборки Android с условной конфигурациейAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Плагины логики сборки Android с условной конфигурацией

Сообщение Anonymous »

Мое текущее приложение для Android использует логику сборки для определения стандартных плагинов.
Плагин Room выглядит следующим образом: -

Код: Выделить всё

class AndroidRoomConventionPlugin : Plugin
 {

override fun apply(target: Project) {
with(target) {
pluginManager.apply("androidx.room")
pluginManager.apply("com.google.devtools.ksp")

extensions.configure {
arg("room.generateKotlin", "false")
}

extensions.configure {
// The schemas directory contains a schema file for each version of the Room database.
// This is required to enable Room auto migrations.
// See https://developer.android.com/reference/kotlin/androidx/room/AutoMigration.
schemaDirectory("$projectDir/schemas")
}

dependencies {
add("api", libs.findLibrary("room.runtime").get())
add("api", libs.findLibrary("room.ktx").get())
add("ksp", libs.findLibrary("room.compiler").get())
}
}
}
}
есть ли способ контролировать, когда/если следующий фрагмент добавляется в файл сборки Gradle?

Код: Выделить всё

            extensions.configure {
// The schemas directory contains a schema file for each version of the Room database.
// This is required to enable Room auto migrations.
// See https://developer.android.com/reference/kotlin/androidx/room/AutoMigration.
schemaDirectory("$projectDir/schemas")
}
причина, по которой мне нужна эта конфигурация условной сборки, заключается в том, что мое приложение для Android имеет ряд функциональных модулей, каждый из которых имеет свое собственное местоположение схемы комнаты, и я не хочу добавлять «дубликат»
р>

Код: Выделить всё

room {
schemaDirectory("$projectDir/fetaureOneSchemas")
}
к этим модулям?
могу ли я каким-либо образом обнаружить существование записи комнаты {schemaDirectory() в существующем gradle из моего AndroidRoomConventionPlugin и НЕ добавлять еще один...

Код: Выделить всё

extensions.configure {
// The schemas directory contains a schema file for each version of the Room database.
// This is required to enable Room auto migrations.
// See https://developer.android.com/reference/kotlin/androidx/room/AutoMigration.
schemaDirectory("$projectDir/schemas")
}
чтобы НЕ добавлять еще одну/дублирующуюся запись комнаты {schemaDirectory() ?

Подробнее здесь: https://stackoverflow.com/questions/790 ... figuration
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»