如何在Eclipse中使用Gradle将文件夹设置为源文件夹?

18

我创建了一个Java项目,并使用Gradle将其结构化为一个源代码文件夹和一个生成文件的构建文件夹。

然后,我使用Git提交了该项目,并在另一台计算机上检出它。但是,在这台第二台计算机上,我无法运行此Java项目,因为我的 src/ 文件夹未被选为源代码文件夹。我应该如何做?我在使用Gradle设置项目时是否应该有所不同?

我的build.gradle文件只包含以下几行:

apply plugin: 'eclipse'
apply plugin: 'java'

当我尝试在第二台电脑上运行我的电脑时,出现以下错误消息:

选择不包含主类型

但是在我的第一台电脑上运行良好。


3
项目属性 -> Java构建路径 -> 源代码。 - Marko Topolnik
2
你尝试过右键单击文件夹->构建路径->使用作为源文件夹吗? - Pshemo
1
在第二台电脑上,你是运行了gradle eclipse并选择"导入现有项目",还是使用了STS Gradle插件并选择"导入Gradle项目"? - Peter Niederwieser
@PeterNiederwieser:我运行了 gradle eclipse,然后导入了现有的项目。 - Jonas
@Pshemo:谢谢,你应该把它发布为答案! - Jonas
3个回答

31

默认情况下,Java插件假定生产源代码位于src/main/java/下。如果它们位于src/下,您需要告诉Gradle:

sourceSets {
    main {
        java {
            srcDirs = ["src"]
        }
    }
}

@Jonas,你可能更应该接受这个使用Gradle解决你问题的答案,而不是我的答案,因为它更具针对性。我的回答比较笼统。 - Pshemo
1
当一个项目是新的时候,依赖关系经常会改变,而且每次都要告诉Eclipse scripts 是源目录,这很烦人。我遵循Gradle/Maven的约定,但是那些不应该被编译,但是应该可以运行和调试的Groovy脚本放在scripts中:这是Groovy约定,Groovy插件将会遵守。因此,在每个Gradle脚本中添加以下内容:sourceSets { main { java { srcDirs += 'scripts' } } } - AbuNassar

3
在 Eclipse 中,右键单击您的项目 => 属性 => Java 构建路径 => 在源中检查您的文件夹 享受。

2

之前的回答都是正确的,但我建议采用Gradle(或者Maven)的约定,这样做将来可以节省很多时间,因为只需要保持一致即可。

当然,你也可以始终如一地采用另一种方法,并向每个项目添加自定义的srcDirs,但是使用以下命令在每个项目中开始:

$ mkdir -p src/{main,test}/{java,resources}

思考一下吧。 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接