我想设置名为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
答案 0 :(得分:0)
如果它是Setting
,则必须在项目加载时知道,因为Setting
只计算一次。另一方面,每次计算Tasks
。 Setting
不能取决于Task
,Task
取决于Setting
。
请参阅http://www.scala-sbt.org/0.13/tutorial/More-About-Settings.html#Tasks+with+dependencies。
答案 1 :(得分:0)
我最终完成的解决方案是重构我自己的代码,以便生成文件的任务在定义输出文件的设置中分割,以及创建文件内容的任务。
该设置用于初始化设置IzPack.variables
,而我的自定义任务取决于使用IzPack.variables
的任务。