将 JavaCC gradle 插件与 Android Studio 集成

Integrate JavaCC gradle plugin with Android Studio

我已经在 this example. Further, I have added JavaCC support to the project using this gradle plugin 之后的 android studio 中成功地建立了一个非常基本的云项目。我现在可以将我的 *.jj 文件放在 javacc 文件夹中,并使用 android studio 中的 compileJavacc 任务编译它们。我的 build.gradle 文件现在看起来像这样:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.14'
        classpath "ca.coglinc:javacc-gradle-plugin:2.0.4"
    }

}

repositories {
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
apply plugin: "ca.coglinc.javacc"

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.14'
    compile 'javax.servlet:servlet-api:2.5'
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

作为 gradle 和 android 工作室初学者,我不确定如何继续以下内容:

  1. 将 javaCC 生成的文件添加到我的构建路径
  2. 在 *.jj 文件更改时自动执行 JavaCC 编译任务 运行。

我如何以最优雅的方式解决这两件事?

谢谢!

面对完全相同的问题并尝试不同的解决方案,我选择了如下所示的解决方案。

android {
    // ...
    sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'build/generated/javacc']
        }
    }
    applicationVariants.all { variant ->
        variant.javaCompile.dependsOn.add(compileJavacc)
    }
    // ...
}