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

时间:2015-05-14 22:27:43

标签: sbt

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

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

我没有在本地捕获这个因为我在〜/ .ivy / cache / scala_2.10 / sbt_0.13 / org.flywaydb /

中缓存了flyway工件

错误显然是由于SBT在启用AutoPlugin的情况下加载构建时未使用自定义flyway解析程序。我的问题是,有没有办法通过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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

不幸的是,您的构建用户仍需要在project/*.sbt内添加解析器设置。