SBT AutoPlugins不应该存在冲突

时间:2017-10-16 22:01:45

标签: scala sbt flyway twirl

我有一个使用FlyWay的sbt项目。它在大多数项目中被禁用,因为我们只运行特定项目的演变。

所以我有这样的事情:

lazy val master = project
  .disablePlugins(FlywayPlugin)
  .aggregate(common)
  .dependsOn(common)

项目运作正常。它编译,工作,测试通过等。

现在我想添加Twirl,所以我这样做(当然除plugins.sbt之外):

lazy val master = project
  .enablePlugins(SbtTwirl)
  .disablePlugins(FlywayPlugin)
  .aggregate(common)
  .dependsOn(common)

我最终得到了这个错误:

[error] sbt.AutoPluginException: Error determining plugins for project 'master' in /opt/app/master:
[error] Contradiction in selected plugins.  These plugins were both included and excluded: org.flywaydb.sbt.FlywayPlugin
[error] Use 'last' for the full log.

我真的不明白,因为我没有改变FlyWay的任何内容。

可能导致什么?

1 个答案:

答案 0 :(得分:1)

这是一个已知问题。所有(子)项目都会自动启用FlywayPlugin,当您尝试禁用它时,会导致冲突。

sbt/sbt#1926。引用@jsuereth:

  

是的,这是我们逻辑系统中的一个已知问题(以及将启用/禁用转换为它)。我正在研究解决它的机制。

     

如果你有时间,欢迎PR。

Flyway存储库中还有一个未解决的问题:flyway/flyway#1329建议不要自动启用它。但到目前为止还没有解决方案或解决方法。