所以,我一般都是Gradle和Java的新手,并且遇到了很多问题。由于IntelliJ的其他一些奇怪的困难,我想改变Antlr输出生成的代码的路径。这很容易改变:
generateGrammarSource {
outputDirectory = file("src/temp/generated-code")
}
然而,现在我很难将它编译成我的“主要”和“测试”源集。我基本上只想扩展主要和测试源集以包含这些文件。我试着这样做:
sourceSets {
generated{
java {
srcDir 'src/temp/generated-code'
}
}
main {
compileClasspath += generated.output
runtimeClasspath += generated.output
}
test {
compileClasspath += generated.output
runtimeClasspath += generated.output
}
}
但是,这样做不允许生成的代码编译访问依赖项。因此,编译失败,因为它无法使用antlr包中的所有内容。
是否有任何简单的方法来添加这些依赖项,或者,只是强制主要和测试源集以某种方式包含生成的代码?
答案 0 :(得分:0)
我最终以一种看似简单的方式解决这个问题:
sourceSets {
main {
java {
srcDirs = ["src/main/java", "src/temp/generated-code"]
}
}
}
虽然我确实需要添加它以进行适当的清理:
clean.doFirst {
delete "src/temp"
}
我觉得可能有更好的方法来做到比在任何地方传递这些路径名称,但似乎工作正常