【问题标题】:Why does Eclipse builds source in non-source folder?为什么 Eclipse 在非源文件夹中构建源代码?
【发布时间】:2011-08-16 15:21:29
【问题描述】:

我刚刚建立了一个新的 Eclipse Java 项目。在这个项目中,我包含了一个名为external 的文件夹,其中包含诸如罐子之类的东西,以及这些罐子的来源。项目中only源文件夹是空的src/文件夹,external/文件夹和external/文件夹的任何子目录都没有被标记为源文件夹。

尽管如此,Eclipse 还是选择编译(并阻塞)位于external/ 文件夹下的源文件。有谁知道它为什么会这样做,以及如何阻止它尝试编译这些文件?

更新

文件层次结构是:

project/
    src/ (Marked as source folder)
    bin/
    external/ (Linked folder, not marked as source folder)

external/ 文件夹是通过右键单击项目,选择新建 -> 文件夹,单击高级并选择“链接到备用位置”来创建的。然后我提供了一个到我的源层次结构之外的文件夹的相对路径。

我在其他几个项目中配置了这个external/ 文件夹,就像这样,没有任何问题。

解决方案

代码根本没有编译,Eclipse 在external/ 目录中的源文件中标记了警告和错误,因此我假设Eclipse 试图编译这些源。但是,警告/错误是由我在 Eclipse 中的 checkstyle 插件添加的。默认情况下,它会解析启用它的项目中所有目录中的源文件。

因此解决方案是指示 checkstyle 仅分析在源文件夹中标记的文件夹中的源。

感谢大家的帮助。

【问题讨论】:

  • 尝试关闭并重新打开项目/eclipse 并检查您关于源文件夹的陈述是否仍然有效
  • @Jens:试过了,也试过关闭并重新启动 Eclipse。仍然只有空的 src/ 文件夹被标记为源文件夹。但是,构建仍会尝试在 external/ 文件夹中构建源代码。 ://
  • 只是为了确定,externalsrc 的子目录吗?
  • @Carlos:不是。 :) 我已经更新了一些澄清的问题。
  • Idea1:你有没有其他可能被 eclipse 触发的构建工具?

标签: java eclipse build


【解决方案1】:

您可以通过右键单击文件夹,突出显示构建路径,然后选择“用作源文件夹”或“从构建路径中删除”来切换哪些文件夹包含要编译的 Eclipse 代码。您从构建路径中删除的任何文件夹都只会将任何 .java 源代码显示为文本文件。

【讨论】:

  • 正如我在问题中所写,只有 src/ 文件夹是源文件夹(查看 Java 构建路径对话框)。 external/ 不是源文件夹,但它仍会尝试在其中构建源代码。
  • 您是否将该文件夹添加为 Java 构建路径的“库”选项卡中的类文件夹?或者路径可能包含在您工作区的类路径变量中?
  • 我在库选项卡中添加的external/ 文件夹中有一个jar,此外我还有系统JRE,仅此而已。我不知道为什么它会成为我的工作区类路径的一部分,但我也不知道如何检查它?
  • 如果您转到 Window > Preferences 然后展开 Java 并单击 Build Path,您可以看到所有工作区级别的构建设置。您是如何将 JAR 文件添加到您的项目中的?
  • 文件夹也不包含在内。只有 ECLIPSE_HOME、JRE_、FINDBUGS、JUNIT* 之类的东西。 ://
【解决方案2】:

请记住,Eclipse 的文件系统与您的实际文件系统不同步。要让 Eclipse 知道您的项目目录中存在一个文件夹,您必须单击并将其拖到 Eclipse 中的项目视图中。

【讨论】:

  • 我认为在 Eclipse 中刷新 (F5) 文件夹就足够了,但这不是我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
相关资源
最近更新 更多