Установка ключа local.sbt, чтобы он применялся в мультипроекте

Как установить ключ в local.sbt таким образом, чтобы каждый подпроект находил его?

Я пытаюсь использовать плагин Coursier в мультипроекте, но, поскольку я его тестирую, я стараюсь не проверять его в нашем репозитории git.

Поэтому я поместил его в свой project/local.sbt и попытался установить coursierUseSbtCredentials := true в local.sbt. Это не имеет никакого видимого эффекта.

  • Аутентифицированный нексус определен в commonSettings val в моем build.sbt

    val commonSettings = Seq(
      ...
      resolvers += "my-nexus" at "http://blah",
      credentials += ... 
    )
    

    который каждый подпроект использует с .settings(commonSettings) (согласно руководству по передовому опыту)

  • Если я поставлю coursierUseSbtCredentials := true в commonSettings, это сработает, но тогда мне придется добавить его в build.sbt, чего я бы предпочел не делать.

Как установить этот ключ, чтобы каждый подпроект мог видеть его и таким образом, чтобы он был внешним по отношению к файлу build.sbt? (например, local.sbt ?)


person Edoardo Vacchi    schedule 27.10.2016    source источник


Ответы (1)


Создайте локальный плагин по адресу project/SetupCoursierPlugin.scala:

import sbt._

import coursier.CoursierPlugin, CoursierPlugin.autoImport._

object SetupCoursierPlugin extends AutoPlugin {
  override def requires = CoursierPlugin
  override def trigger  = allRequirements

  override def projectSettings = Seq(
    coursierUseSbtCredentials := true
  )
}
person Dale Wijnand    schedule 27.10.2016
comment
Я поместил его в local.scala и добавил к .gitignore. Работает по назначению. Спасибо. - person Edoardo Vacchi; 27.10.2016