我有一个使用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
的任何内容。
可能导致什么?
答案 0 :(得分:1)
这是一个已知问题。所有(子)项目都会自动启用FlywayPlugin
,当您尝试禁用它时,会导致冲突。
见sbt/sbt#1926。引用@jsuereth:
是的,这是我们逻辑系统中的一个已知问题(以及将启用/禁用转换为它)。我正在研究解决它的机制。
如果你有时间,欢迎PR。
Flyway存储库中还有一个未解决的问题:flyway/flyway#1329建议不要自动启用它。但到目前为止还没有解决方案或解决方法。