2011-10-06 40 views
37

什么是构建的目的,自动在EclipseProject- >Build Automatically选项?矿将永远被检查。但是,当我有一些Java代码的变化,我仍然需要做一个完整的构建。我被告知应该经常检查。我没有看到这样做的好处。请一些身体解释。目的Eclipse中的“自动构建”选项

回答

27

是的,你仍然需要做一个构建 - 但是当你保存的时候会自动完成(不是像Ant构建那样的外部构建,而是“内部”构建)。如果你不想建立保存,你可以取消选中该框。我相信,让它自动生成会让一些人紧张。

+0

你通过保存构建的是什么?构建与ANT构建有何不同 – pushya

+3

@pushya:通常Ant构建可能会自动运行测试,或者构建到一个单独的区域以备部署,可能会构建jar文件,可能在每次构建之前清理。内部构建通常只是在输出目录中创建类文件,并复制资源。特别是,这对于单元测试等快速转换非常有用 - 但是如果您想要可重复的,从头开始,全部测试运行等构建,那么您将需要使用类似Ant的东西。 –

+0

@JonSkeet - 当您运行监控代码更改的嵌入式Web应用程序服务器时,自动生成的设置往往会对性能产生负面影响。频繁的代码更改会导致重复的服务器重新启动和最终的IDE崩溃。 – Perception

0

如果选中“自动构建”,IDE将在您修改和保存文件时自动编译Java代码。这并不意味着它将完全构建和打包整个解决方案,就好像您要部署它一样,例如您正在WAR模块上的Web项目中工作。它基本上只是编译你的代码。

+1

最后一句话不对,对于WTP项目,它将重新部署您的应用程序到服务器。 –

+0

仅当您将其设置为自动部署时也是如此。 – nitind

20

Eclipse有一个很好的答案on their website

你有两种工作模式:自动建立模式和手动构建模式。默认情况下,您处于自动构建模式,Eclipse负责自动编译源文件。每次更改工作区中的文件时(例如保存编辑器),构建都会在后台自动进行。自动构建非常方便,因为它意味着问题视图,二进制文件等始终处于最新状态。缺点是在大型工作区中,如果要在具有大量下游依赖项目的项目中更改文件,自动构建可能非常耗时。

如果自动构建时间过长并且干扰正在进行的开发,则可以将其关闭。一旦处于手动构建模式,用户就可以完全控制构建何时发生以及构建什么。可随时调用“项目”>“全部生成”(Ctrl + B)来触发自动构建自动执行的操作。这允许您在调用构建之前构建更大的一组更改(Eclipse会记住哪些文件已更改,以便在您请求构建​​时不需要执行比所需更多的工作)

请注意,当他们说“自动生成模式”,他们的意思是,如果你已经检查了“自动构建”,当他们说“手工打造模式”,他们说你没有“自动构建”检查。

+0

“每次更改工作区中的文件时,构建都会自动发生在后台(例如,保存编辑器)。” - 清晰和简单 – luigi7up

1


对于C/C++用户被告知(fromhelp.eclipse.org)

默认情况下,Eclipse工作台被配置为自动构建项目。但是,对于C/C++开发,您应该禁用此选项,否则每当(例如)保存对生成文件或源文件的更改时,都会重建整个项目。点击Project> Build Automatically并确保Build Automatically菜单项旁边没有复选标记。

1

项目 - 禁用自动构建选项并不总是意味着自动构建关闭。例如,“Makegood”测试自动化插件将在触发自动构建时触发首选项 - 运行/调试 - 启动 - (一般选择)启动之前构建处于打开状态。因此,如果需要手动编译,请将其关闭。

1

还有一个不同之处是:
大多数时候处理JSP时,它会帮助我检查“自动构建”。它会自动获取JSP中的更改。
但是,如果您在您的Java类/ XML中进行更改,则需要手动构建。 因为我使用通过命令提示符在eclipse外运行的resin服务器,所以我更喜欢检查选项。
当我在eclipse中设置服务器时,我将其关闭并在服务器上使用Publish。

这是我使用的方式,答案是基于我的经验。

1

有一件事,人们在这里没有提及(我也花了一段时间才弄清楚)eclipse构建(无论是自动还是手动)基本上都遵循你在项目的“Java Build路径“选项卡。因此,当构建源选项卡中包含文件时,当您更改文件时,它将被复制/编译到为该目录/文件指定的输出文件夹中。