Depenent JvmModelInferrer调用了两次?

时间:2018-02-11 14:38:59

标签: gradle xtext

tldr;
当我使用DSL-B(依赖于DSL-A)构建项目时,generateXtext gradle任务经常执行DSL-A的JvmModelInferrer。

详情

以下是重现此问题的简单示例:ex.xtext.twog

有2个xtext项目:

  • DSL A:语法a是独立的
  • DSL B:语法b,引用语法a

和2个使用xtext项目的演示项目:

  • demo/demoA :(使用DSL a)与这个简单的model def DefStr java.lang.String
  • demo/demoB :(使用DSL b)使用这个简单的model use UseStrCls DefStr

我已经向JvmModelInferrers添加了一些调试日志消息,以查看发生了什么 demoB中的xtext生成调用AJvmModelInferrer 3次(参见build output):

:demoB:generateXtext
AJvmModelInferrer: infer definition=DefStr isPreIndexingPhase=true
AJvmModelInferrer: infer definition=DefStr isPreIndexingPhase=false
BJvmModelInferrer: infer use=UseStrCls isPreIndexingPhase=true
BJvmModelInferrer: infer use=UseStrCls isPreIndexingPhase=false
AJvmModelInferrer: infer definition=DefStr isPreIndexingPhase=false

为什么在AJvmModelInferrer之后再次调用BJvmModelInferrer

注意:我找不到关于如何使用多个语法的好文档或示例,所以很可能,我在设置中做错了 - 这里是相关部分:

0 个答案:

没有答案