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