首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >能让“groovyc”只生成存根吗?(Java+Groovy+Kotlin的联合编译)

能让“groovyc”只生成存根吗?(Java+Groovy+Kotlin的联合编译)
EN

Stack Overflow用户
提问于 2018-12-13 10:20:04
回答 2查看 323关注 0票数 6

我试图在所有Java、Groovy和Kotlin之间进行联合/混合编译。我目前正在研究一种理论,如果groovyc可以作为第一阶段发出存根文件的话,这应该是可能的。

可以吗?否则,任何关于如何利用Groovy?的源代码创建这样一个特性的指针

以下是完全混合编译的想法:

  1. 让Groovyc为其所有类创建Java存根。(这就是问题所在:让groovyc (或它的一部分)只生成存根)。
  2. 让Kotlinc编译Kotlin-file,根据Java文件和Groovy的Java存根进行键入(将它们添加到kotlinc的类路径中)
  3. 让Javac编译Java文件,基于Groovy的Java存根和Kotlin的类文件(将它们添加到javac的类路径中,或者使用-sourcepath作为Java存根)。
  4. 让Groovyc编译Groovy-文件,基于Java的类文件和Kotlin的类文件(将它们添加到groovyc的类路径中)。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-21 08:20:18

这是相对容易的编程,但不支持目前从命令行。对于编程使用,您需要类似于1的内容,但是随着引用行上的阶段被更改为SEMANTIC_ANALYSIS。您还需要按照2保持存根。

要从命令行启用这一功能,FileSystemCompiler需要知道一个完成阶段,而在3处的unit.compile()语句需要知道这个阶段。但我自己也没试过这些改变。

1

2

3

票数 1
EN

Stack Overflow用户

发布于 2018-12-13 17:13:17

使用诸如Gradle或Maven之类的构建工具。

它们有一个标准的项目文件布局,它指定目录结构和命名约定。您将把groovy源文件放在/src/groovy/下,java源文件放在/src/java/下,类似于kotlin。

使用所选的生成工具插入项目目录并准备基本构建配置。如果build配置告诉工具有多种语言,那么它们在编译时就会自动了解彼此。更重要的是,如果您使用IntelliJ这样的IDE (甚至是免费版本),编辑器将了解构建配置,了解多种语言,并提供导入建议和类/方法完成。

Groovy调用Java是我每天都要用到的东西,Java到Groovy也是可能的,但是您需要了解Groovy是如何工作的,因为有许多Groovy编码成语不能直接从Java调用,但是标准类可以很好地工作。

同样的限制也适用于Kotlin。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53759596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档