如何防止Eclipse在每次构建时清理bin文件夹?

5
我现在正在使用Eclipse做一个项目,其中有一些资源文件(例如图像、文本)保存在bin文件夹中,这些文件是程序所需的。
然而,在每次构建时,Eclipse都会尝试清理文件夹,然后重新构建项目。在清理时,它会删除文件夹中的资源文件。有没有办法阻止Eclipse这样做呢?
我知道我可以更改文件位置,但我也很想知道为什么Eclipse会这样做,以及是否可以避免这种情况发生。
谢谢!

1
根据我的经验,当Eclipse没有清理bin文件夹时,会出现混乱情况,因为在调试时仍可能出现影子类,并且会出现“天哪,为什么我的代码仍然引用我删除的东西?” - usr-local-ΕΨΗΕΛΩΝ
4个回答

11

转到 选项 -> Java-> 编译器 -> 构建 并取消选中 清理项目时清理输出文件夹

这对我非常有用。在我的项目中,我有一个 Ant 任务,将一些配置资源添加到 bin 文件夹中,以便将它们包含在类路径中,而不需要将它们放在 src 中。


这个答案对我有用。需要注意的是,清理可以在工作区(在“窗口”>“首选项”下)和项目(在“项目”>“属性”下)级别进行配置。 - jr.
1
这并没有阻止我的Eclipse(Oxygen.3a)清除了我的target/generated-sources/protobuf/java - Paul Bellora

5
我无法确定为什么会这样,但很可能是Eclipse的构建方式:清空“输出文件夹”并开始编译。
如果您将文件放入源文件夹中,则Eclipse会在每次构建时将文件简单地复制到bin中,它们不会消失。对于任何它不知道如何编译的文件,例如.xml.xsd.png等,它都会执行此操作。

我发现Eclipse正在复制我的文件,但不是在特定的包文件夹下,而是到bin文件夹中,这导致了路径错误。你能给我一些建议吗?谢谢! - zw324
1
如果不使用Maven,这是正确的解决方案。将您的文件放在与源代码相同的目录中,Eclipse会在每次构建时将其放入bin目录中。 - Jesse Webb
1
值得注意的是,Eclipse从src复制到bin的资源是可配置的。在项目->属性->Java Build Path->源->(源文件夹名称)->包含和排除中进行配置。 - meriton
@ziyao,你遇到了什么“路径错误”的问题?Eclipse会将源文件夹的完整目录结构复制到项目的输出文件夹中。如@meriton所述,您可能需要更改它们的位置。 - Rodney Gitzel

3
你可以考虑使用Maven风格的项目,并将资源添加到资源文件夹中。
这是一个Maven目录结构的链接
你在Eclipse中使用什么类型的项目。你可以在“项目”菜单中关闭自动构建功能,这将停止Eclipse自动清理项目。

0

将您的资源复制并粘贴到源文件夹中。在Eclipse中,打开“包资源管理器”,找到您的项目,然后将其粘贴到src文件夹中。它会给出一个选项,让您选择是复制文件还是链接文件。点击复制,它就会被存储在/bin文件夹中,但不会被删除。


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