我有一个scala和java代码的项目,我目前使用scala IDE插件在eclipse中管理。目前,组织目录结构使得一些包具有java和scala代码。有些scala类依赖于java类,还有其他依赖于scala类的java类。该插件透明地处理所有这些 - 我相信(但我不是100%肯定)scala编译器将java和scala代码编译在一起,这是交叉依赖关系的处理方式。我确实找到了一些使用Maven e.g. here 编译混合项目的引用,但是我看到的那些关于将java和scala分成两个独立源树的讨论。 Maven尝试首先编译scala代码,因为它依赖于java代码而失败。同样,如果首先编译java代码,它也会失败,因为依赖关系是双向的。有没有办法让Maven像eclipse插件一样编译所有代码?我也希望有能力生成一个eclipse项目,如果可能的话,不需要做太多的手动修复。
答案 0 :(得分:5)
通常的Maven目录结构是
src/
main/
java/
com/foo/mypackage/
scala/
com/foo/mypackage/
如果以这种方式进行设置,那么肯定您可以在Java和Scala代码之间存在交叉依赖关系。请参阅相关主题的maven-scala-plugin或scala-maven-plugin页面。
我不建议将Java和Scala代码放在同一目录中。