我的项目有很多模块,而我们使用gradle的代码生成器很少。配置示例:
sourceSets {
...
swagger {
compileClasspath = configurations.swaggerCompile
java {
srcDir file("${project.buildDir.path}/build/generated/source/swagger/")
}
}
main {
java {
srcDirs 'build/generated/source/proto/main/...'
}
}
test {
java {
srcDirs 'build/generated/source/proto/main/...'
}
}
}
ext {
generatedSourcesDir = 'build/generated/source'
}
protobuf {
...
generatedFilesBaseDir = "${buildDir}/generated-src/..."
}
项目无法使用Intellij进行编译,因为它会在指定目录和Intellij生成的/ out /目录中生成类。
例如,在以下情况下生成相同的重复类:
\ out \ production \ classes \ generated \-Intellij \ build \ generation-src .. \-Gradle
它给了我数百条错误消息,例如:错误:(30,14)java:重复的类:com.xxx.xxx.xxx.YourClass我已经尽我所能在Intellij论坛上找到的所有内容。对我没有任何帮助。
我什至尝试在“文件”>“设置”>“构建,执行,部署”>“编译器”>“排除”中排除“出”目录,但是它也不起作用。
唯一的方法是构建项目,手动删除所有“输出”目录,然后禁用注释处理器。但这不是使其工作的最佳方法。