eclipse中“自动构建”选项的目的

Posted

技术标签:

【中文标题】eclipse中“自动构建”选项的目的【英文标题】:Purpose of the "Build Automatically" option in eclipse 【发布时间】:2011-12-02 09:22:36 【问题描述】:

Eclipse (Project-->Build Automatically) 中的Build Automatically 选项的目的是什么?我的总是会被检查。但是,当我有一些 Java 代码更改时,我仍然需要进行完整的构建。有人告诉我应该始终检查它。我认为这样做没有任何好处。请有人解释一下。

【问题讨论】:

【参考方案1】:

是的,您仍然需要进行构建 - 但它会在您保存时自动完成(不是像 Ant 构建那样的外部构建,而是“内部”构建)。如果您不想在保存时进行构建,请取消选中该框。我相信,让它自动构建会让一些人感到紧张。

【讨论】:

你正在通过保存构建什么?该构建与 ANT 构建有何不同 @pushya:通常,Ant 构建可能会自动运行测试,或者构建到准备好部署的单独区域,可能会构建 jar 文件,可能会在每次构建之前进行清理。内部构建通常只会在输出目录中创建类文件,并复制资源。特别是,这对于单元测试等时的快速周转非常有用 - 但如果您想要一个可重复的、从头开始、所有测试运行等构建,那么您将需要使用 Ant 之类的东西。 @JonSkeet - 当您运行监视代码更改的嵌入式 Web 应用程序服务器时,设置为自动构建往往会对性能产生负面影响。在这种情况下频繁更改代码会导致服务器反复重启并最终导致 IDE 崩溃。 @Perception:如果我遇到这种情况,我会让嵌入式服务器监视一个不同的目录,该目录仅在显式构建时写入。我讨厌不能在我想要的时候运行新代码的单元测试...... @JonSkeet - 同意这绝对是一种处理它的方法。我个人将我的嵌入式服务器设置为手动部署(没有任何代码监控)。但是我的团队中有一些顽固的开发人员,他们似乎很享受 IDE 崩溃的痛苦!【参考方案2】:

Eclipse 有个好答案on their website:

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

如果自动构建耗时过长并且干扰了正在进行的开发,可以将其关闭。一旦进入手动构建模式,用户就可以完全控制构建发生的时间和构建的内容。可以随时调用 Project > Build All (Ctrl+B) 来触发自动构建正在自动执行的操作。这允许您在调用构建之前构建更大的更改集(Eclipse 会记住哪些文件已更改,因此当您请求构建​​时它不必做比所需更多的工作。

请注意,当他们说“自动构建模式”时,他们的意思是如果您选中了“自动构建”,当他们说“手动构建模式”时,他们表示您没有选中“自动构建”。

【讨论】:

"每次您更改工作区中的文件(例如保存编辑器)时,都会在后台自动进行构建。" -清晰简单【参考方案3】:

注意 对于 C/C++ 用户,它被告知 (from help.eclipse.org):

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

【讨论】:

【参考方案4】:

项目 - 禁用自动构建 选项并不总是意味着自动构建已关闭。例如,当 Preferences - Run/Debug - launch - (General opt) Build before launch 为 ON 时,“Makegood”测试自动化插件将触发自动构建。因此,如果需要手动构建,请将其关闭。

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

另一个区别是: 大多数时候,在处理 JSP 时,它会在检查“自动构建”时帮助我。它会自动获取 JSP 中的更改。 但是,如果您对 java 类/XML 进行更改,则需要手动构建。 由于我使用的是通过命令提示符在 Eclipse 外部运行的树脂服务器,因此我更喜欢检查该选项。 当我在 Eclipse 中设置服务器时,我将其关闭并使用在服务器上发布。

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

【讨论】:

【参考方案7】:

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

【讨论】:

最后一句话不正确,对于 WTP 项目,它会将您的应用程序重新部署到服务器。 仅当您也将其设置为自动部署时。

以上是关于eclipse中“自动构建”选项的目的的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse 中自动为类创建构建器

在 Eclipse 中自动将项目构建到 JAR 中

如何在 VS2008 中打开“自动构建”选项

使用 Jenkins 从 Git 自动构建 IBM ODM RuleApp

如何自动构建此 Winrar Sfx 文件

Android Gradle 插件Gradle 自动化构建 ① ( Gradle 构建工具简介 | Gradle 构建工具用途 )