2011-02-10 28 views
1

任何人都可以發佈如何在sbt項目中引用外部java源目錄的代碼示例?如何使一個sbt項目引用外部java源碼

如果我做了以下

override def mainSourceRoots = super.mainSourceRoots +++ externalsourcepath 

的SBT編譯任務將準確地找到並編譯Java源代碼,但隨後失敗。例如

[info] Compilation successful. 
java.lang.RuntimeException: Path /full/path/to/java/class/com/foo/bar/SomeClass.java not in . 
+0

將外部源路徑符號鏈接到/ your/project/src/main/java會更簡單嗎? – 2011-02-10 04:39:54

+0

是的你是對的,我確實是做最後的手段。它確實有用,但實際上我的情況稍微複雜一些,有一些「饋線」子項目 - 我可以全部複製它們,甚至可以編寫它,但是編寫腳本來解決這個問題似乎有點愚蠢一個構建工具 - 我當然希望能夠以正確的方式做到這一點。 – 2011-02-10 04:45:27

回答

3

SBT 0.9將支持外部子項目。在此之前,我會建議將另一個建立到JAR,並將結果放入./lib

0

如果Java項目使用Maven或Ivy,那麼您可以在本地安裝它們並將它們聲明爲SBT項目中的依賴關係。如果您需要Maven的反應器,您可以在同一個超級項目中混合使用Java和Scala子模塊,並同時按順序編譯它們,則可以嘗試SBT Subprojects

相關問題