因此,我是Gradle和Java的新手,总体上有相当多的问题。由于IntelliJ的其他一些奇怪的困难,我想更改Antlr将生成的代码输出到的路径。这很容易改变:
generateGrammarSource {
outputDirectory = file("src/temp/generated-code")
}然而,现在我很难把它编译成我的"main“和"test”源码集。我基本上只想扩展main和测试源集,以包含这些文件。我尝试过这样做,比如:
sourceSets {
generated{
java {
srcDir 'src/temp/generated-code'
}
}
main {
compileClasspath += generated.output
runtimeClasspath += generated.output
}
test {
compileClasspath += generated.output
runtimeClasspath += generated.output
}
}但是,这样做并不允许生成的代码编译访问依赖项。因此,编译失败是因为它不能使用antlr包中的所有内容。
有没有什么简单的方法来添加这些依赖关系,或者,强制主和测试源码集以某种方式包含生成的代码?
发布于 2016-01-22 05:22:14
我最终以一种看似简单的方式解决了这个问题:
sourceSets {
main {
java {
srcDirs = ["src/main/java", "src/temp/generated-code"]
}
}
}不过,为了进行适当的清理,我不得不添加以下内容:
clean.doFirst {
delete "src/temp"
}我觉得可能有一种比到处传递这些路径名更好的方法,但它似乎工作得很好
https://stackoverflow.com/questions/34932877
复制相似问题