13

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

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

谢谢,

4

1 回答 1

18

我认为你将无法避免它。正常的 Scala/Java 集成是这样工作的:

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

明显的问题是 Scala 对 Lombok 注释一无所知,因此它无法弄清楚它生成的元素。

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

否则,我想你需要打破它。

于 2012-06-23T18:42:52.937 回答