Java Flyway迁移(多项目):对主模块而不是子模块运行SBT命令

Java Flyway迁移(多项目):对主模块而不是子模块运行SBT命令,java,scala,playframework,sbt,Java,Scala,Playframework,Sbt,我有一个play框架项目,其中有一个客户端库作为子模块。我正在使用flyway进行数据库迁移。当我对flyway使用命令(例如sbt flywayMigrate)时,它会运行该命令两次,一次针对根项目,一次针对客户端库子模块 有没有办法只针对项目而不针对任何子模块运行SBT命令? sbt-clientLibrary/flywayMigrate将仅对子模块运行命令,但sbt-root/flywayMigrate将同时对两者运行命令 我已经了解了哪些地址只运行一个子模块,但对只运行主模块而不运行子模

我有一个play框架项目,其中有一个客户端库作为子模块。我正在使用flyway进行数据库迁移。当我对flyway使用命令(例如
sbt flywayMigrate
)时,它会运行该命令两次,一次针对根项目,一次针对客户端库子模块

有没有办法只针对项目而不针对任何子模块运行SBT命令?
sbt-clientLibrary/flywayMigrate
将仅对子模块运行命令,但
sbt-root/flywayMigrate
将同时对两者运行命令

我已经了解了哪些地址只运行一个子模块,但对只运行主模块而不运行子模块没有帮助

编辑: 我确实在根目录的聚合中有客户端库,删除它默认情况下只对根目录运行命令。但是,我认为默认情况下运行所有模块是可取的,我希望指定模块排除而不是包含。

请参阅:

在进行聚合的项目(本例中为根项目)中,可以控制每个任务的聚合。例如,要避免聚合更新任务,请执行以下操作:

lazy val root = (project in file(".")).
  aggregate(util, core).
  settings(
    aggregate in update := false
  )
在您的情况下,改为在flywayMigrate中设置聚合:=false。就这么一次,

sbt "; set aggregate in (ThisBuild, flywayMigrate) := false; root/flywayMigrate"

应该有用

也许这对你有帮助@AlexeySoshin这确实为我指明了方向,我将用更多细节更新我的问题。