如何使用 gradle 为 android 构建我的 xtext 语言

How to build my xtext language with gradle for android

我用 xtext 编写了一个测试 DSL 并生成了一个 IntelliJ 插件。 我有一个小的 Android-test 项目,在 Android Studio 中出现了我的 DSL 编辑器,并且还按预期生成了输出文件。

现在我尝试配置 gradle 以生成文件,但是失败并出现错误。

我找到了 xtext-builderAndroid 集成 部分。这似乎已过时(例如,它指的是 org.xtext.android,它不存在 - link 也已损坏)。

无论如何,在 xtext-gradle-plugin github repo 中有一个 org.xtext.android.builder 插件:我想这是正确的。

我的 项目 build.gradle 文件如下所示(仅相关部分):

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/" // needed for org.xtext:xtext-android-gradle-plugin
        }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath "org.xtext:xtext-android-gradle-plugin:1.0.14"
    }
}

allprojects {
    repositories {
        jcenter()
        mavenLocal() // This is required so that the mydsl language is found
    }
}

当我在我的 app 模块 build.gradle 文件中激活 org.xtext.android.builder 插件时:

apply plugin: 'com.android.application'
apply plugin: "org.xtext.android.builder" // causes the Error!

我得到这个错误:

Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getJavaCompiler()Lorg/gradle/api/tasks/compile/AbstractCompile;'...

我猜是版本不匹配或者不是最新的。
有什么想法吗?

这是 bug (#73) in the xtext-gradle-plugin. It was fixed in Version 1.0.16