SBT:在运行时向项目添加依赖项
SBT: Add dependencies to project at runtime
有sbt项目申报
lazy val myProject = (Project("myProject", file("someRoot"))
enablePlugins ...
settings (...)
它有 taskKey 提取一些依赖文件系统。
我的问题是在加载 SBT 的那一刻我无法确定所有依赖项,只有在执行私有命令别名后才能确定
addCommandAlias("resolveDependencies", "; resolveDependenciesTask; TODO: update myProject dependencies and reload it")
有办法吗?
实际上,请忽略我对您问题的评论。您可以使用命令来修改构建的状态,因此在您 运行 它之后,它所做的更改将保留。
大致如下:
// 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
调用它。
您 return 从命令中获得的状态实例成为构建的新状态,即如果您添加了一些依赖项,构建将看到它们。
有sbt项目申报
lazy val myProject = (Project("myProject", file("someRoot"))
enablePlugins ...
settings (...)
它有 taskKey 提取一些依赖文件系统。
我的问题是在加载 SBT 的那一刻我无法确定所有依赖项,只有在执行私有命令别名后才能确定
addCommandAlias("resolveDependencies", "; resolveDependenciesTask; TODO: update myProject dependencies and reload it")
有办法吗?
实际上,请忽略我对您问题的评论。您可以使用命令来修改构建的状态,因此在您 运行 它之后,它所做的更改将保留。
大致如下:
// 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
调用它。
您 return 从命令中获得的状态实例成为构建的新状态,即如果您添加了一些依赖项,构建将看到它们。