Projemdeki yapı tanımında Android kapsamındaki SettingKey useProguard öğesi true olarak ayarlandı. Bu varsayılan olarak istediğim şey. Ancak, belirli bir görevi yürüttüğümde, useProguard'ın false olmasını istiyorum. Android kapsamındaki her şey sbt-android-plugin'den geliyor.SBT'yi kullanarak, çalışma zamanında farklı bir Ayar [T] değeri olan bir görevi nasıl yürütürsünüz?
Bu sorunu en iyi nasıl çözeceğinden emin değilim. Okuduğumdan, bir komutun işi yapması gibi görünüyor, çünkü mevcut oturumun gördüklerinden farklı bir durumla bir görevi yürütebiliyor. Böyle bir komut şöyle oluşturmaya çalıştık:
def buildWithoutProguard = Command.command("build-without-proguard") { state =>
val extracted = Project.extract(state)
import extracted._
val transformed = session.mergeSettings :+ (useProguard in Android := false)
val newStructure = Load.reapply(transformed, structure)
val newState = Project.setProject(session, newStructure, state)
Project.evaluateTask(buildAndRun, newState)
state
}
benim proje ayarlarına komutu ekleme ve istenilen şekilde buildAndRun görevi yürütür 'build-olmadan-ProGuard' komutunu çalıştırıyorum. Bununla birlikte, useProguard beklediğim gibi yanlış yerine hala doğrudur. Birincisi, bu yaklaşım benim için çok ağır hissettiriyor. Sbt-android-plugin'i değiştirmenin bir seçenek olmadığını varsayarsak, o zaman bu sorunu nasıl çözebilirim?
İkincisi, neden bu yaklaşım neden çalışmaz?
olası kopyası [SBT komutunun içinde ayar nasıl değiştirilir?] (Http://stackoverflow.com/questions/14262798/how-to-change-setting-inside-sbt-command) –