【问题】Java和Scala混合编译下无法正常使用lombok的问题


工作中有java和scala和混合编译的工程,最近遇到一个问题,就是工程中有依赖java bean的scala文件,编译过程中发现编译器无法找到Java bean 中 lombok生成的getter,

网上找了一下,import scala.collections.JavaConvertions._的方法是没用的。

最后终于找到一个跟我有一样问题的哥们,里面的最佳答案表示这个问题无法解决,

最佳答案:

我认为您将无法避免。正常的Scala / Java集成的工作方式如下:

Scala首先出现,因为Java对Scala一无所知。
Scalac解析Java文件并了解可见元素。
Scalac读取Scala文件并生成类文件。
Java排在最后,读取Java文件以及Scala生成的类文件。

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

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

否则,我想您需要将其分解。

好吧,那就姑且认为无法解决了,但是他所说的原因我仍保持怀疑,按我的经验,java&scala混合编译下,java代码应该是先编译的,甚至我们经常需要使用

mvn clean scala:compile compile package

这样的命令来达到scala先编译的效果,而不是他所说的scala goes first。

 

总之,暂时通过手动generate getter的方式就可以规避,反正用idea插件,生成getter/setter也不费事(笑)

 

stackoverflow上的原文见 https://stackoverflow.com/questions/11171631/error-compiling-java-scala-mixed-project-and-lombok


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM