Scala 如何处理与TaskKey相关的大量(20+;)设置键?
我目前正在为您完成SBT插件 Flyway有6个基本命令,这些命令将映射到6个TaskKey 这些可由Flyway对象上的大量设置器(20+)进行配置。然后,这些设置中的每一个都会映射到一个设置键(每个设置器一个) 但是,在解析TaskKey时,我可以通过的参数数量达到了限制。是否有更好/更具可伸缩性(如支持更多设置键)的解决方案?或者更笼统地说:Scala 如何处理与TaskKey相关的大量(20+;)设置键?,scala,sbt,Scala,Sbt,我目前正在为您完成SBT插件 Flyway有6个基本命令,这些命令将映射到6个TaskKey 这些可由Flyway对象上的大量设置器(20+)进行配置。然后,这些设置中的每一个都会映射到一个设置键(每个设置器一个) 但是,在解析TaskKey时,我可以通过的参数数量达到了限制。是否有更好/更具可伸缩性(如支持更多设置键)的解决方案?或者更笼统地说: 处理大量与任务键相关的设置键的最佳方法是什么?解决方法是将多个相关键捆绑到辅助对象中。例如,我正在创建一个助手键“\u aux\u java”,以处
处理大量与任务键相关的设置键的最佳方法是什么?解决方法是将多个相关键捆绑到辅助对象中。例如,我正在创建一个助手键
“\u aux\u java”
,以处理该问题:
private val java = TaskKey[JavaSettings]("_aux_java")
...
val settings = Seq[Setting[_]](
...
java <<= (systemProperties, javaOptions, fullClasspath, packageBin in Compile,
mainClass, javaVersion, javaArchs, workingDirectory) map JavaSettings,
appbundle <<= (infos, java, bundle, streams) map appbundleTask
)
...
case class JavaSettings(systemProperties: Seq[(String, String)],
javaOptions: Seq[String], classpath: Classpath, jarFile: File,
mainClassOption: Option[String], javaVersion: String,
javaArchs: Seq[String], workingDirectory: Option[File])
private val java=TaskKey[JavaSettings](“\u aux\u java”)
...
val设置=顺序[设置[]](
...
java解决方法是将多个相关键捆绑到辅助对象中。例如,我正在创建一个辅助键“\u aux\u java”
,以处理该问题:
private val java = TaskKey[JavaSettings]("_aux_java")
...
val settings = Seq[Setting[_]](
...
java <<= (systemProperties, javaOptions, fullClasspath, packageBin in Compile,
mainClass, javaVersion, javaArchs, workingDirectory) map JavaSettings,
appbundle <<= (infos, java, bundle, streams) map appbundleTask
)
...
case class JavaSettings(systemProperties: Seq[(String, String)],
javaOptions: Seq[String], classpath: Classpath, jarFile: File,
mainClassOption: Option[String], javaVersion: String,
javaArchs: Seq[String], workingDirectory: Option[File])
private val java=TaskKey[JavaSettings](“\u aux\u java”)
...
val设置=顺序[设置[]](
...
java我将“状态”参数传递给task,并直接从中提取所有设置键
例如:
IMHO在0.13中会有替代方法,但您最好根据sbt邮件列表进行搜索
PS我计划根据需要支持0.12 a长,因此这是我唯一的解决方案。我将“状态”参数传递给task,并从中直接提取所有设置键
例如:
IMHO在0.13中会有替代方法,但您最好根据sbt邮件列表进行搜索
PS我计划根据需要支持0.12 a长,因此这是我唯一的解决方案