混合Scala/Java项目的编译顺序与跨语言依赖配置相关问题
scala-maven-plugin 混编Java/Scala常见问题解答
1. 默认配置下的编译顺序
默认配置下会先编译Java代码,再编译Scala代码。此时仅支持Scala代码依赖Java代码,Java代码无法引用Scala侧的类。
2. 单向依赖的配置方式
- 若仅需要 Scala依赖Java:直接使用默认配置即可,无需额外调整。
- 若需要 Java依赖Scala:可以通过插件的
scala-compile-first参数实现,将该参数配置为true后,插件会调整执行顺序,先完成Scala代码编译,再执行Java编译,Java代码即可正常引用Scala类。
如果不想调整编译顺序,也可以选择启用插件的联合编译模式,禁用maven-compiler-plugin的默认编译逻辑,让scala-maven-plugin统一处理两类代码的编译。
3. 双向依赖的支持情况
支持Java和Scala双向依赖的场景。
你只需要启用scala-maven-plugin的联合编译功能即可:该模式下插件会同时扫描所有Java和Scala源码,统一解析符号依赖,不管是Java调用Scala还是Scala调用Java的类,都能正常完成编译,不需要手动调整两类代码的编译顺序。
内容的提问来源于stack exchange,提问作者Litchy
相关产品推荐
相关产品推荐

