У меня есть build.sbt
файл со следующим фрагментом:Как абстрагироваться от SBT?
scalastyleConfig in Compile := baseDirectory.value/"project"/"scalastyle_config.xml"
scalastyleConfig in Test := baseDirectory.value/"project"/"scalastyle_config.xml"
Когда я использую IntelliJ для переменной экстракта, я получаю:
val scalaStyleConfig: File = baseDirectory.value/"project"/"scalastyle_config.xml"
scalastyleConfig in Compile := scalaStyleConfig
scalastyleConfig in Test := scalaStyleConfig
, не оценить.
Я отлажены вещи, чтобы получить 2 возможных альтернатив, оценки:
val scalastyleConfigFile = SettingKey[File]("scalaStyleConfig")
scalastyleConfigFile := baseDirectory.value/"project"/"scalastyle_config.xml"
scalastyleConfig in Compile := scalastyleConfigFile.value
scalastyleConfig in Test := scalastyleConfigFile.value
или:
def scalastyleConfigFile(baseDir: File) = baseDir/"project"/"scalastyle_config.xml"
scalastyleConfig in Compile := scalastyleConfigFile(baseDirectory.value)
scalastyleConfig in Test := scalastyleConfigFile(baseDirectory.value)
Я не доволен ни с одной из моих альтернатив. Сейчас я использую вторую альтернативу, потому что она короче. Досадно, что нужно передать baseDirectory.value
в качестве параметра функции. .
Я пробовал различные варианты, используя lazy val
-Ни из которых работала :(Там должно быть лучший способ абстрагироваться с SBT
Можете ли вы помочь
Спасибо! Оно работает! –