[英]sbt-assembly multimodule project?
我的項目分為多個部分:*核心項目* utils(例如)項目
兩者都有一些單元測試,“核心項目”依靠sbt的“ dependsOn”機制依賴“ utils”項目中的代碼。
我正在使用sbt-assembly插件來構建“ uber-jar” /“ fat-jar”,但是sbt assembly
任務並未在utils項目上運行測試-這是我要實現的目標(我看不到來自日志中的“ utils項目”)
將“ dependsOn”更改為“ aggregate”會引入新問題:
sbt程序集聚合重復數據刪除
類似於這個在github上的問題
因此,我的問題是如何組織可以通過sbt-assembly
組裝的多模塊項目,並在組裝任務期間執行所有測試?
我的猜測是,您應該在子項目之間同時具有dependsOn和聚合關系。 它們不是互斥的,僅用於不同的目的。
DependsOn引入了代碼依賴性,因此,如果core依賴utils,則意味着您可以從core中的utils引用類型。
聚合引入了任務依賴性。 這意味着,如果您在核心上執行編譯或測試,並且聚合了utils,則該任務將在兩個子項目上執行。
重復數據刪除的問題是另一回事-這意味着,嘗試創建一個jar時,資源或類中存在重復數據。 造成這種情況的原因可能多種多樣,您可以通過驗證構建中的庫依賴關系或創建MergeStrategy來解決它們-https: //github.com/sbt/sbt-assembly#merge-strategy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.