sbt - 是否可以通过 AutoPlugin 将解析器添加到 SBT 项目的构建中?

标签 sbt

我正在创建一个包含非自动插件的 AutoPlugin flywaydb .不幸的是,非自动插件需要自定义解析器。当我发布我们的自动插件时,客户端项目的元构建中没有使用解析器,导致 SBT 无法以大堆栈跟踪开始:

sbt.ResolveException: unresolved dependency: org.flywaydb#flyway-sbt;3.2.1: not found

我没有在本地捕获这个,因为我在 ~/.ivy/cache/scala_2.10/sbt_0.13/org.flywaydb/中缓存了飞行路径工件

该错误显然是由于 SBT 在启用 AutoPlugin 的情况下加载构建时未使用自定义飞行路径解析器。我的问题是,有没有办法通过 AutoPlugin 设置添加元构建解析器?或者是否要求所有插件依赖项都必须可以通过默认的 SBT 解析器解析?

第二个问题(可能是真正的问题):客户端项目的元构建不会传递依赖于已启用插件的依赖项,这可能是 SBT 错误吗?

这个项目是OSS。代码链接以防万一:

这是插件项目添加解析器的地方:
https://github.com/allenai/sbt-plugins/blob/a3ea78319836fd39cc8f2e13305e85bb9bfef5c7/build.sbt#L44-L45

这是自动插件:
https://github.com/allenai/sbt-plugins/blob/a3ea78319836fd39cc8f2e13305e85bb9bfef5c7/src/main/scala/org/allenai/plugins/DatabasePlugin.scala

最佳答案

我发现我指向了错误的解析器,现在是

resolvers += "Flyway" at "https://flywaydb.org/repo"

关于sbt - 是否可以通过 AutoPlugin 将解析器添加到 SBT 项目的构建中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30248497/

相关文章:

scala - 在 play.api.test 中找不到 Play Framework 2.4 WithApplication 调用

git - 在 Jenkins/Git 中设置远程跟踪

sbt - 如何在任务中执行命令

scala - sbt 中的++= 和 += 之间有什么区别,比如 libraryDependencies?

scala - 如何在 play 框架和 build.sbt 中获取应用程序版本

scala - 在 Travis 构建中为 SBT 启动器配置存储库

scala - com.typesafe.sbt#sbt-pgp 发生了什么?

jenkins - 使用 build.sbt 中的 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM

scala - 在 SBT 中运行测试套件之前如何启动服务器?

scala - 为什么 sbt 认为这是一个 'unknown artifact?'