我有一個多項目包含一個私有宏子項目,它的用途僅限於實現其他子項目的方法體。它也不應該在其他子項目的運行時類路徑中,也不應該在其他子項目的已發佈POM中以任何形式顯示。因此,其他sbt項目可以在不知道宏子項目的情況下使用該項目的庫。在sbt中添加編譯時只有子項目依賴項
對於外部依賴關係,我發現這SO Q&A完美的作品,但對於子項目,當我試圖做類似的事情dependsOn
,sbt抱怨配置「compileonly」未找到。
ivyConfigurations += config("compileonly").hide
val macro = Project("macro", file("macro"))
val lib = Project("lib", file("lib")).dependsOn(macro % "compile->compileonly")
的'compile'任務失敗。在編譯'lib'時,它無法在'macro'項目中找到任何類。 – Steiny