2013-08-08 5 views
0

Я хочу объединить плагин sbt-release с платформой Play.Как оценить sbt SettingsKey

Плагины читают текущий номер версии из файла version.sbt. Его содержание

version in ThisBuild := "0.41.0-SNAPSHOT" 

Я хотел бы использовать эту установку в моем главном файле сборки, но переменная version имеет типа sbt.SettingKey.

Существует метод evaluate, но на всю жизнь я не могу понять, что передать, чтобы получить строку, определенную мной в version.sbt.

+0

как вы хотите использовать его в файле сборки? Использовать его значение для определения других настроек или задач? – gourlaysama

+0

Возможный дубликат http://stackoverflow.com/questions/8989285/getting-the-value-of-a-settingkeyt – gourlaysama

+0

Я хочу, чтобы версия плагина выпуска была версией play.Project. –

ответ

0

Это небольшой недостаток с конструктором play.Project, за исключением статического номера версии, а не одного из установочного ключа.

Однако единственным обязательным параметром является имя приложения, так что вы можете переключаться с чем-то вроде:

val main = play.Project(appName, appVersion, appDependencies, settings = 
    Defaults.defaultSettings ++ releaseSettings).settings(...) 

в

val main = play.Project(appName).settings(appDependencies). 
    settings(releaseSettings).settings(...) 

Как правило, версия определена в version.sbt должна быть подобрана здесь автомагически. Если это не так, вы всегда можете добавить к вышесказанному:

.settings(applicationVersion <<= version in ThisBuild) 
2

Я пробовал решение принятого ответа, но он не компилировался. (Play 2.1.5)

[error] (ss: sbt.Project.Setting[_]*)sbt.Project <and> 
[error] => Seq[sbt.Project.Setting[_]] 
[error] cannot be applied to (Seq[sbt.ModuleID]) 
[error] val main = play.Project(appName).settings(appDependencies).settings(releaseSettings).settings(
[error]         ^
[error] one error found 

Вместо этого я придумал это решение:

... 
    lazy val appSettings = Defaults.defaultSettings ++ ... ++ releaseSettings 

    val main = play.Project(appName, dependencies = appDependencies, settings = appSettings).settings(
     version <<= version in ThisBuild, 
     ... 
    ) 
Смежные вопросы