Я пытаюсь расширить Плагин Яна Беркеля для Android для Scala, который использует SBT.
У меня есть похожие действия и настройки, как уже определенные android:install-device
и android:install-emulator
.
Пусть они называются android:dev-install-device
и android:dev-install-emulator
.
Я добавил новые ключи в AndroidKeys.scala
:
val devInstallDevice = TaskKey[Unit]("dev-install-device")
val devInstallEmulator = TaskKey[Unit]("dev-install-emulator")
val devStartDevice = TaskKey[Unit]("dev-start-device", "Start package on device after installation")
val devStartEmulator = TaskKey[Unit]("dev-start-emulator", "Start package on emulator after installation")
Я также добавил вещи в AndroidLaunch.scala
:
lazy val settings: Seq[Setting[_]] =
//AndroidInstall.settings ++
AndroidFastInstall.settings ++
inConfig(Android) (Seq (
devStartDevice <<= startTask(false),
devStartEmulator <<= startTask(true),
//startDevice <<= startTask(false),
//startEmulator <<= startTask(true),
devStartDevice <<= devStartDevice dependsOn devInstallDevice,
devStartEmulator <<= devStartEmulator dependsOn devInstallEmulator
//startDevice <<= startDevice dependsOn installDevice,
//startEmulator <<= startEmulator dependsOn installEmulator
))
Проблема в том, что если я хочу, чтобы мои собственные задачи были доступны, я должен закомментировать исходные, стандартные, чего я не хочу.
Есть ли что-то, что я упускаю из виду?
Обновление:
я пробовал изменить порядок настроек.
Когда AndroidFastInstall
предшествует AndroidInstall
, AndroidInstall
выполняется независимо от того, я вызываю android:install-device
или android:dev-install-device
.
lazy val settings: Seq[Setting[_]] =
AndroidFastInstall.settings ++
inConfig(Android) (Seq (
devStartDevice <<= devStartTask(false),
devStartEmulator <<= devStartTask(true),
devStartDevice <<= devStartDevice dependsOn devInstallDevice,
devStartEmulator <<= devStartEmulator dependsOn devInstallEmulator
))++
AndroidInstall.settings ++
inConfig(Android) (Seq (
startDevice <<= startTask(false),
startEmulator <<= startTask(true),
startDevice <<= startDevice dependsOn installDevice,
startEmulator <<= startEmulator dependsOn installEmulator
))
Когда AndroidInstall
предшествует AndroidFastInstall
, AndroidFastInstall
выполняется независимо от того, я вызываю android:install-device
или android:dev-install-device
.
lazy val settings: Seq[Setting[_]] =
AndroidInstall.settings ++
inConfig(Android) (Seq (
startDevice <<= startTask(false),
startEmulator <<= startTask(true),
startDevice <<= startDevice dependsOn installDevice,
startEmulator <<= startEmulator dependsOn installEmulator
)) ++
AndroidFastInstall.settings ++
inConfig(Android) (Seq (
devStartDevice <<= devStartTask(false),
devStartEmulator <<= devStartTask(true),
devStartDevice <<= devStartDevice dependsOn devInstallDevice,
devStartEmulator <<= devStartEmulator dependsOn devInstallEmulator
))
Похоже, что последние добавленные всегда закрывают видимость предшествующих им. Кто-нибудь знает решение этого?