首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SBT:在运行时向项目添加依赖项

SBT:在运行时向项目添加依赖项
EN

Stack Overflow用户
提问于 2017-01-05 20:43:07
回答 1查看 39关注 0票数 0

有sbt项目声明

代码语言:javascript
运行
复制
lazy val myProject = (Project("myProject", file("someRoot"))
    enablePlugins ...
    settings (...)

它有taskKey,可以提取一些对文件系统的依赖。

我的问题是,在加载SBT的那一刻,我不能确定所有的依赖项,它只能在执行私有命令别名之后才能完成

代码语言:javascript
运行
复制
addCommandAlias("resolveDependencies", "; resolveDependenciesTask; TODO: update myProject dependencies and reload it")

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-05 21:48:26

实际上,忽略我对你问题的评论。您可以使用命令来修改构建的状态,因此在运行它之后,它所做的更改将保留下来。

大致是这样的:

代码语言:javascript
运行
复制
// 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调用它。

从命令返回的状态实例将成为构建的新状态,也就是说,如果您添加了一些依赖项,构建将会看到它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41485444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档