如何设置值列表取决于任务的值

时间:2015-01-09 12:21:58

标签: sbt

我想设置名为sbt-izpack的名为SettingKey[Seq[Tuple2[String, String]]]的名为IzPack.variables的第三方插件。

文档说明了如何设置此设置:

IzPack.variables in IzPack.Config <+= name {name => ("projectName", name)}

我认为<+=语法很旧。 0.13.5 SBT文档中没有对此进行解释。

如何附加依赖于任务的值?

这是我现在使用的语法:

IzPack.variables in IzPack.Config ++= Seq(
    ("appVersion", mySetting1.value),
    ("cocoonXconf", mySetting2.value),
)

但是在尝试使用此消息的任务值时会抱怨:

A setting cannot depend on a task

2 个答案:

答案 0 :(得分:0)

如果它是Setting,则必须在项目加载时知道,因为Setting只计算一次。另一方面,每次计算TasksSetting不能取决于TaskTask取决于Setting

请参阅http://www.scala-sbt.org/0.13/tutorial/More-About-Settings.html#Tasks+with+dependencies

答案 1 :(得分:0)

我最终完成的解决方案是重构我自己的代码,以便生成文件的任务在定义输出文件的设置中分割,以及创建文件内容的任务。

该设置用于初始化设置IzPack.variables,而我的自定义任务取决于使用IzPack.variables的任务。