我可以使用混合java和scala代码在Maven中编译具有依赖关系的Scala项目吗?

我有一个 scalajava代码的项目,我目前使用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项目,如果可能的话,不需要做太多的手动修复.

解决方法

通常的Maven目录结构是
src/
  main/
    java/
      com/foo/mypackage/
    scala/
      com/foo/mypackage/

如果以这种方式进行设置,那么肯定您可以在Java和Scala代码之间存在交叉依赖关系.有关该主题,请参阅maven-scala-pluginscala-maven-plugin页面.

我不建议将Java和Scala代码放在同一目录中.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...