我的构建中有一个额外的 java 源代码集,称为 gen
- 生成的源代码中有很多编译器警告。 gradle eclipse
任务将这个集合的源码目录配置为eclipse源码文件夹,这导致了很多我不想看到的警告。另一个原因是,不应更改生成的源代码 - 我不希望有人无意中编辑它,认为它是常规代码。
以下有效,但仅在使用 gradle eclipse
覆盖现有配置时有效。
eclipse.classpath.file {
whenMerged { classpath ->
classpath.entries.removeAll {
entry -> entry.kind == 'src' && entry.path == 'src/gen/java'
}
}
}
但是,如果清除了配置 - gradle cleanEclipse eclipse
,它就不起作用了,这是你第一次在 eclipse 中导入项目时发生的情况。
阅读EclipseClasspath object documentation ,我认为唯一的其他方法是使用 eclipse.classpath.file.withXml
,但它接缝太乱,无法编辑原始 xml。
还有其他更优雅的解决方案吗?
最佳答案
我通过将“gen”目录添加到主 java sourceSet 来解决类似的情况。
如下
configurations {
jaxb
}
dependencies {
jaxb 'com.sun.xml.bind:jaxb-xjc:'
}
sourceSets.main.java.srcDirs 'gen'
task createGenDirs() {
file("gen").mkdirs()
}
task jaxb << {
dependsOn createGenDirs
//generate src into gen directory
}
task cleanGeneratedCode(type: Delete) {
delete file("gen")
clean.dependsOn cleanGeneratedCode
希望对你有帮助
关于eclipse - 使 Gradle 不使用源集目录作为 Eclipse 源文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603076/