eclipse - 使 Gradle 不使用源集目录作为 Eclipse 源文件夹

标签 eclipse gradle

我的构建中有一个额外的 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/

相关文章:

java - 将 Groovy 代码放入 Eclipse 中的 src 文件夹

node.js - 从 jenkins 运行时出现 NPM 问题

spring - 如何将spring boot项目转换为spring mvc

spring - Spring Yaml动态变量替换

eclipse - 如何设置 Eclipse 中编译的系统属性?

android - 如何将 Eclipse Android 项目转换为使用 Ant 进行构建?

java - Eclipse java 项目 forName() classnotfoundException

maven - Camel Spring Boot Maven到Gradle

Android Studio 运行应用程序时出现编译时错误

java - POJO类中序列版本id的唯一性