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

Edu*_*rdo 10 java scala maven lombok

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

请注意,我试图避免引入另一个maven项目,因为bean在逻辑上属于同一个项目,因此首先编译这个bean.此外,我无法在Scala中重写bean,因为它稍后在GWT项目中使用.

谢谢,

Dan*_*ral 16

我想你无法避免它.正常的Scala/Java集成如下所示:

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

显而易见的问题是Scala对Lombok注释一无所知,因此无法弄清楚它产生的元素.

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

否则,我想你需要分解它.

  • @rzwitserloot [Handrolled parser](https://github.com/scala/scala/tree/master/src/compiler/scala/tools/nsc/javac)(这应该令人惊讶——他的工作成为了 javac 的基础从 JDK 1.3 开始)。它不支持注释处理器。 (2认同)