38

通常,当我们自动检查 Project->Build 时,它会在我们的项目源发生更改时构建,但是当我检查此选项时,我的 Eclipse 总是在构建 - 大约每 2 或 3 秒 - 无论它是否有变化。我可以从右下角的状态栏中看到“正在构建工作区......”。

令人讨厌的是,这种行为使我的 eclispe 非常缓慢,并且 CPU 始终处于高使用率状态。

我正在为 java EE 开发人员使用 eclipse 3.7、m2e、用于 WTP 的 maven 集成、git 插件、subclipse 和用于 eclipse、checkstyle、findbugs 等的 Google 插件。

有任何想法吗?

PS我在Win 7上,8GB RAM

4

14 回答 14

18

我以前在基于 ant 的构建中看到过这种效果。

您的 maven 构建中可能有一些输出到源文件夹之一或其子目录之一的内容。Eclipse 检测到文件已更改并开始新的构建。

于 2012-11-25T15:00:15.943 回答
18

我刚刚禁用了我的项目以自动构建。陷入那种无休止的循环真的很烦人。

去:

项目->自动构建

于 2017-11-16T17:48:40.970 回答
6

Preferences -> Workspace -> Refresh on access在 Eclipse 中,由于 Rudy Vissers 的评论让我走上了正确的道路,我不得不禁用它。

于 2016-02-22T14:42:43.143 回答
5

我有同样的问题。

在一个“Project X”中,我使用“Project->Properties->Android->Library->Add...”添加了一个 Library-Reference。

Library-Project 设置为“Is Library”=true。在这个 Library-Project 中,我在“Project->Properties->Project References”下选择了另一个“Project X”。

因此,这两个项目相互引用,并在自动构建时导致无限循环。

删除其中一个引用以停止这个无休止的建筑。也许这可以帮助某人。

于 2014-04-16T21:04:01.360 回答
4

A source of this problem could be a target folder that marked as a source folder.

To check and resolve this: Right click on project -> Preferences -> Java Build Path -> Source

Remove target folder from the list if present

于 2016-04-15T14:05:55.760 回答
2

将 javaPlease42 答案扩展为

项目-> 属性-> 工作区-> 自动构建

取消选中然后“应用并关闭”


与上述答案无关,我已按项目移动到 C 盘,我发现我的共享驱动器访问速度太慢,这也是以缓慢的过程一次又一次显示构建的原因之一

于 2019-07-18T15:12:41.943 回答
0

Both projects are referenced to each other.

Go to "Project->Properties->Project References" and check the references on both projects, that causes like an endless loop when building automatically.

于 2014-11-12T15:20:15.297 回答
0

我们发现,在使用 Chrome 进行调试时,我们最终会运行大量 chromedriver .exe 进程。它们中的大量似乎会导致日食窒息。

重新启动计算机将解决此问题,但您也可以运行命令来杀死它们。在我当前的测试系统上,驱动程序是:

chromedriver-win32-2.14.exe

用于杀死进程的所有正在运行的副本的命令提示符 kill 命令是:

taskkill /F /IM

所以,对我来说,要杀死有问题的进程:

打开命令提示符

进入:

taskkill /F /IM chromedriver-win32-2.14.exe

消除虚假进程后,eclipse 恢复为快乐的小狗……直到下一次生成过多的进程。

于 2015-02-18T19:57:27.720 回答
0

在这种情况下,问题是由在目标目录中生成 JAXB 类(这很好)但使用项目的主 JAVA 包引起的。所以说项目的主要 JAVA 包是 com.proj 然后 JAXB 类有 com.proj.schema 包。这不知何故混淆了 Eclipse(詹金斯很好)。将 JAXB 类的包从 com.proj.schema 更改为 schema 就可以了。

于 2019-03-07T14:58:47.840 回答
0

如果您生成需要包含在构建路径中的代码,那么您可以将以下内容添加到您的 pom.xml 中,以便 Eclipse Maven Builder 跳过相关插件的生成步骤。请参阅 <ignore/> 部分。

在下面的示例中,是 openapi-generator-maven-plugin 导致重新生成目标/生成源,并且由于该文件夹被添加到构建路径中,它导致 Eclipse 再次重新生成代码, 然后再次...

您仍然可以随时通过菜单 Run As-> Maven generate-sources 手动生成代码

        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.openapitools</groupId>
                                        <artifactId>openapi-generator-maven-plugin</artifactId>
                                        <versionRange>[0.1,)</versionRange>
                                        <goals>
                                            <goal>generate</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                                                                
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>     
于 2022-01-11T16:00:53.283 回答
0

我想我已经找到了一种方法来启用Refresh using native hooks or polling,Refresh on accessBuild automatically,而不需要无限的编译循环。

请按照以下步骤操作

右键项目->Properties->C/C++ Build->Refresh Policy选项卡->只添加Debug或Release目录,不添加整个项目。

于 2019-03-28T09:19:51.457 回答
0

对我来说,它在Eclipse Kepler中的工作方式如下。

右键单击项目/单击项目菜单 -> 属性 -> Java 构建路径 -> 选择源选项卡 -> 删除目标文件夹(如果存在)

上面的那个为我完成了这项工作,但在此之前我尝试了以下不起作用的方法。

  • 结束eclipse进程并重新启动
  • 重启java.exe进程
  • 重启我的电脑
于 2017-09-04T05:53:46.453 回答
0

我在 Ubuntu Linux 上遇到了同样的问题。当它发生时,我的包开始显示为文件夹,而不是带有方形图标的单个包名称。

当我查看 eclipse 文件夹时,我有一个名为C:. 这是我的计算机文件夹结构的镜像,安装了 eclipse 文件夹。我刚刚删除了这个文件夹并重新启动,它就像一个魅力。

如果您看到额外的文件夹,请尝试一下。当然,删除需要您自担风险。

于 2017-10-25T15:44:41.053 回答
-1

请参阅上面的 Rudy Vissor,我取消选择“使用本机挂钩或轮询刷新”和“访问时刷新”,问题立即得到解决。使用 Eclipse Oxygen 4.7.1

于 2017-12-14T17:50:23.863 回答