为什么Gradle-> Refresh从.classpath中删除我的protobuf源文件夹?

cil*_*lki 1 eclipse gradle

我有一个Eclipse/Gradle项目,如下所示.对于一个目录.proto描述符和所生成的一个目录.java包含在其他项目文件.

    src/main/java
    src/main/proto
Run Code Online (Sandbox Code Playgroud)

我想将我的src/main/proto目录添加为Eclipse源文件夹,以便于编辑.

所以很自然地我添加<classpathentry kind="src" path="src/main/proto"/>到我的.classpath文件中.添加源文件夹,一切都很好,直到我运行Gradle->Refresh不明智地删除源文件夹.我的猜测是Gradle没有.javaproto文件夹中找到任何文件,因此从中删除了整个文件夹.classpath.有什么方法可以防止这种情况吗?

我也尝试过:

<classpathentry kind="src" path="src/main/proto">
  <attributes>
    <attribute name="FROM_GRADLE_MODEL" value="true"/>
  </attributes>
</classpathentry>
Run Code Online (Sandbox Code Playgroud)

这个问题没有成功.

oae*_*oae 5

所以问题是,如果你进行刷新,gradle会从头开始重新生成.classpath文件.所以你没有在gradle级别定义的任何内容都将丢失!

如何在Gradle中定义src文件夹?尝试将以下块放入build.gradle:

sourceSets {
    main {
        java {
            srcDirs 'src/main/proto'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

只要文件夹包含至少一个文件,这应该将'src/main/proto'添加到eclipse类路径中!