首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Gradle中将自定义Antlr输出路径添加到主源集?

如何在Gradle中将自定义Antlr输出路径添加到主源集?
EN

Stack Overflow用户
提问于 2016-01-22 03:42:51
回答 1查看 563关注 0票数 1

因此,我是Gradle和Java的新手,总体上有相当多的问题。由于IntelliJ的其他一些奇怪的困难,我想更改Antlr将生成的代码输出到的路径。这很容易改变:

代码语言:javascript
复制
generateGrammarSource {
    outputDirectory = file("src/temp/generated-code")
}

然而,现在我很难把它编译成我的"main“和"test”源码集。我基本上只想扩展main和测试源集,以包含这些文件。我尝试过这样做,比如:

代码语言:javascript
复制
sourceSets {
    generated{
        java {
            srcDir 'src/temp/generated-code'
        }
    }
    main {
        compileClasspath += generated.output
        runtimeClasspath += generated.output
    }
    test {
        compileClasspath += generated.output
        runtimeClasspath += generated.output
    }
}

但是,这样做并不允许生成的代码编译访问依赖项。因此,编译失败是因为它不能使用antlr包中的所有内容。

有没有什么简单的方法来添加这些依赖关系,或者,强制主和测试源码集以某种方式包含生成的代码?

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 05:22:14

我最终以一种看似简单的方式解决了这个问题:

代码语言:javascript
复制
sourceSets {
    main {
        java {
            srcDirs = ["src/main/java", "src/temp/generated-code"]
        }
    }
}

不过,为了进行适当的清理,我不得不添加以下内容:

代码语言:javascript
复制
clean.doFirst {
    delete "src/temp"
}

我觉得可能有一种比到处传递这些路径名更好的方法,但它似乎工作得很好

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

https://stackoverflow.com/questions/34932877

复制
相关文章

相似问题

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