【问题标题】:Can I compile a Scala project with mixed java and scala code with dependencies both ways in Maven?我可以在 Maven 中编译一个混合了 java 和 scala 代码的 Scala 项目吗?
【发布时间】:2012-08-24 17:18:26
【问题描述】:

我有一个项目,它同时包含 scala 和 java 代码,我目前正在使用 scala IDE 插件在 eclipse 中管理它。目前,目录结构是这样组织的,一些包中同时包含 java 和 scala 代码。有依赖于 java 类的 scala 类,还有其他依赖于 scala 类的 java 类。该插件透明地处理所有这些 - 我相信(但我不是 100% 肯定)scala 编译器将 java 和 scala 代码一起编译,这就是处理交叉依赖关系的方式。我确实找到了一些关于使用 Maven e.g. here 编译混合项目的参考资料,但我看到的那些参考资料是关于将 java 和 scala 分成两个单独的源代码树。 Maven 尝试首先编译 scala 代码,但由于对 java 代码的依赖而失败。同样,如果首先编译 java 代码,它也会失败,因为依赖项是双向的。有没有办法让 Maven 像 eclipse 插件一样编译所有代码?如果可能的话,我还希望能够生成一个 eclipse 项目,而无需在事后进行太多手动修复。

【问题讨论】:

    标签: java eclipse scala maven dependency-management


    【解决方案1】:

    通常的Maven目录结构是

    src/
      main/
        java/
          com/foo/mypackage/
        scala/
          com/foo/mypackage/
    

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

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

    【讨论】:

    • 我最初尝试过这个,但我的 pom.xml 中一定有错误。我从第一个链接中的 pom 的逐字副本开始,它起作用了。它似乎适用于单独或混合的源树。为什么不建议将 scala 和 java 组合在同一个目录中?
    • 因为这不是插件想要的工作方式。如果你能让它工作,那很酷 - 让我们知道。但我的建议总是顺其自然……
    • 为什么将java和scala代码放在同一个目录不是一个好主意?
    • 我也想知道为什么不这样做。如果您就这个话题回答my question,我将不胜感激。
    猜你喜欢
    • 2014-08-18
    • 2016-02-23
    • 1970-01-01
    • 2016-06-21
    • 2021-10-25
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多