簡體   English   中英

飛路遷移(多項目):為主模塊運行SBT命令,但不運行子模塊

[英]Flyway migration (multi project): run SBT command for main module, but not submodule

我有一個play框架項目,它有一個客戶端庫作為子模塊。 我正在使用flyway進行數據庫遷移。 當我使用sbt flywayMigrate命令(例如sbt flywayMigrate )時,它會運行該命令兩次,一次針對根項目,一次針對客戶端庫子模塊。

有沒有辦法只針對項目運行SBT命令,而不是任何子模塊?
sbt clientLibrary/flywayMigrate將僅對子模塊運行命令,但sbt root/flywayMigrate對兩者運行命令。

我已經看到這個答案解決了只運行一個子模塊的問題,但是沒有幫助只運行主模塊而沒有運行子模塊。

編輯:我確實在根集合中有客戶端庫,默認情況下刪除它只為root運行命令。 但是我認為默認運行所有模塊是可取的,我想指定模塊排除而不是包含。

http://www.scala-sbt.org/0.13/docs/Multi-Project.html#Aggregation

在執行聚合的項目中,在這種情況下,根項目,您可以控制每個任務的聚合。 例如,要避免聚合更新任務:

 lazy val root = (project in file(".")). aggregate(util, core). settings( aggregate in update := false ) 

在您的情況下,請aggregate in flywayMigrate := false設置aggregate in flywayMigrate := false 要做一次,

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

應該管用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM