[英]Can 'groovyc' be told to just generate stubs? (Joint-compile of Java+Groovy+Kotlin)
我正在尝试在所有 Java、Groovy 和 Kotlin 之间进行联合/混合编译。 我目前正在研究一个理论,即如果可以使 groovyc 仅在第一阶段发出存根文件,那应该是可能的。
它可以? 否则,是否有关于从 Groovy 源代码中创建此类功能的指示?
下面是完全混合编译的思路:
这相对容易以编程方式执行,但目前命令行不支持。 对于程序化使用,您需要类似 [1] 的内容,但将引用行上的阶段更改为 SEMANTIC_ANALYSIS。 您还需要按照 [2] 保留存根。
要从命令行启用此功能,FileSystemCompiler 需要了解完成阶段,并且需要让 [3] 中的 unit.compile() 语句了解该阶段。 但我自己并没有真正尝试过这些改变。
[1] https://github.com/apache/groovy/blob/master/src/test/groovy/bugs/Groovy6086Bug.groovy#L63
[2] https://github.com/apache/groovy/blob/master/src/test/groovy/bugs/Groovy9031.groovy#L33
使用 Gradle 或 Maven 等构建工具。
它们有一个标准的项目文件布局,它指定了目录结构和命名约定。 您会将 groovy 源文件放在 /src/groovy/ 下,将 java 源文件放在 /src/java/ 下,kotlin 也类似。
使用选择的构建工具初始化项目目录并准备基础构建配置。 如果构建配置告诉工具存在多种语言,那么它们将在编译时自动了解彼此。 更重要的是,如果您使用 IntelliJ(甚至是免费版本)等 IDE,编辑器将了解构建配置并了解多种语言,并提供导入建议和类/方法完成。
Groovy 调用 Java 是我每天使用的东西,Java 到 Groovy 也是可能的,但你需要了解 Groovy 的工作原理,因为有许多 Groovy 编码习惯用法不能直接从 Java 调用,但标准类工作得很好。
类似的限制适用于 Kotlin。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.