2011-02-10 65 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

相关问题