簡體   English   中英

sbt-assembly多模塊項目?

[英]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.

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