如何根据任务的价值设置价值列表
How to make a Setting of list of values depend on the value of a task
我想设置名为 sbt-izpack 的第 3 方插件的 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
如果它是 Setting
,则必须在项目加载时知道它,因为 Setting
只计算一次。 Tasks
另一方面每次都计算。 Setting
不能依赖于 Task
但 Task
可以依赖于 Setting
。
参见 http://www.scala-sbt.org/0.13/tutorial/More-About-Settings.html#Tasks+with+dependencies。
我最终完成的解决方案是重构我自己的代码,以便生成文件的任务分为定义输出文件的设置和创建文件内容的任务。
该设置用于初始化设置 IzPack.variables
,而我的自定义任务依赖于使用 IzPack.variables
的任务。
我想设置名为 sbt-izpack 的第 3 方插件的 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
如果它是 Setting
,则必须在项目加载时知道它,因为 Setting
只计算一次。 Tasks
另一方面每次都计算。 Setting
不能依赖于 Task
但 Task
可以依赖于 Setting
。
参见 http://www.scala-sbt.org/0.13/tutorial/More-About-Settings.html#Tasks+with+dependencies。
我最终完成的解决方案是重构我自己的代码,以便生成文件的任务分为定义输出文件的设置和创建文件内容的任务。
该设置用于初始化设置 IzPack.variables
,而我的自定义任务依赖于使用 IzPack.variables
的任务。