编译 Java/Scala 混合项目和龙目岛时出错

2022-09-04 20:12:28

我正在尝试编译一个Maven Java / Scala混合项目,该项目具有Scala类,该类依赖于带有龙目岛注释的Java bean。我尝试将龙目岛jar文件添加到Scala编译器以及龙目岛代理的引导类路径中,但编译器仍然无法找到生成的getters。Scala编译器有没有办法识别龙目岛注释?如果没有,那么什么是一个好的解决方法?

请注意,我试图避免引入另一个maven项目,只是为了首先编译这个bean,因为bean在逻辑上属于同一个项目。另外,我不能在Scala中重写bean,因为它后来在GWT项目中使用。

谢谢


答案 1

我想你无法避免它。正常的 Scala/Java 集成的工作方式如下:

  1. Scala是第一位的,因为Java对Scala一无所知。
    1. Scalac解析Java文件并了解可见元素。
    2. Scalac读取Scala文件并生成类文件。
  2. Java排在最后,读取Java文件以及Scala生成的类文件。

显而易见的问题是,Scala对龙目岛注释一无所知,因此无法弄清楚它生成的元素。

如果你没有任何从Java到Scala的依赖关系,你可以简单地颠倒顺序:让Java先去,让Scala在其类路径上包含javac的输出类文件。

否则,我想你需要把它拆开。


答案 2

推荐