有sbt项目声明
lazy val myProject = (Project("myProject", file("someRoot"))
enablePlugins ...
settings (...)它有taskKey,可以提取一些对文件系统的依赖。
我的问题是,在加载SBT的那一刻,我不能确定所有的依赖项,它只能在执行私有命令别名之后才能完成
addCommandAlias("resolveDependencies", "; resolveDependenciesTask; TODO: update myProject dependencies and reload it")有没有办法做到这一点?
发布于 2017-01-05 21:48:26
实际上,忽略我对你问题的评论。您可以使用命令来修改构建的状态,因此在运行它之后,它所做的更改将保留下来。
大致是这样的:
// in your build.sbt
commands += Command.command("yourCustomCommand")(state =>
Project.extract(state).append(
Seq(libraryDependencies += // settings you want to modify
"com.lihaoyi" % "ammonite-repl" % "0.5.7" cross CrossVersion.full),
state))然后用sbt yourCustomCommand调用它。
从命令返回的状态实例将成为构建的新状态,也就是说,如果您添加了一些依赖项,构建将会看到它们。
https://stackoverflow.com/questions/41485444
复制相似问题