Eclipse无休止地循环:调用'Maven Project Builder'

时间:2011-11-14 01:17:32

标签: eclipse maven m2eclipse

唉!我的Eclipse陷入了无休止的循环:

  • 此时无法显示任何操作
  • 刷新工作区构建
  • 工作区。在/ MobileWebApp上调用'Maven Project Builder'

建筑工作空间永远不会超过58%。

详细说明:

Google的GWT提供了一个示例应用程序MobileWebApp。他们suggest adding it to Eclipse通过文件>导入>来自SCM的Checkout Maven项目。

我按照this blog中的说明添加了m2e,subclipse和m2e-subclipse连接器的插件。

安装插件后,我通过File>导入了示例项目。导入>来自SCM和this URL的Checkout Maven项目。

导入似乎完成正常,Eclipse不显示任何标记。但是现在我有了这种无尽的清新和建筑,并且不知道是什么导致它或如何解决它。

版本:

  • Eclipse Indigo 3.7
  • m2e 1.0.100
  • m2-connect for build-helper-maven-plugin 0.14
  • Subclipse 0.13的Maven SCM处理程序
  • Subclipse 1.6.18
  • Subclipse Client Adapter 1.6.12

非常感谢任何建议。

18 个答案:

答案 0 :(得分:21)

我打开了我的模块的.project文件。有两个条目:

<buildCommand>
  <name>org.maven.ide.eclipse.maven2Builder</name>
</buildCommand>
<buildCommand>
  <name>org.eclipse.m2e.core.maven2Builder</name>
</buildCommand>

我删除了org.eclipse.m2e.core.maven2Builder条目,它神奇地解决了这个问题。

答案 1 :(得分:18)

我可以通过右键单击项目并选择Run As&gt;来解决这个问题。 Maven Clean

答案 2 :(得分:13)

我在一个与GWT无关的eclipse(Juno)Maven项目中得到了同样的问题 - 它只是保持清爽和#34;调用Maven Project Builder&#34;。转到进度视图并请求取消进度条目(通过单击右侧的红色停止按钮)没有帮助。

建筑师一直坚持的项目总是相同的,并且在eclipse的一组多pom maven项目中有几个层次。

最终为我解决的是进入该特定项目的Properties&gt; Builders并取消选中Maven Project Builder(但保持Java Builder已检查,以便在代码更改时仍会自动生成)。我只是忽略了关于这是一个&#34;高级操作的警告&#34;可能有很多副作用&#34; - 我认为它不会比那个持续的构建 - 刷新周期更烦人。我还不确定这个循环的原因是什么,但这阻止了我。从那时起我就没有任何问题了。

答案 3 :(得分:8)

我实际上解决了jaxb插件引起的问题。如果forceRegenerate设置为true,你将在eclipse中获得构建循环(在我的例子中是Kepler)。

验证maven-jaxb-plugin中是否将forceRegenerate设置为false。

<configuration>                                  
    <forceRegenerate>false</forceRegenerate>
</configuration>

答案 4 :(得分:2)

即使在日食火星上,M2e似乎也喜欢无限的建筑。

在我的情况下,没有重复的构建命令,如下面列出的那样。 当项目树巨大时,唯一似乎有效的是:

  1. 打开日食
  2. 打开eclipse后立即自动禁用构建
  3. 刷新工作区并触发手册a Crtl + B 或构建全部。
  4. 一旦eclipse确信它构建完整的项目树...更好的有四个核心机器或者你会等待一段时间,你可以精确地将构建自动选项激活。 Eclipse之后似乎没有进入建筑狂潮。它仍然会扫描一些文件夹一段时间,但是自动激活构建 - 一旦你之前构建了它 - 比新构建的速度快得多,最后,eclipse变得稳定,无限制地构建。
  5. 否则,您会被弃用mvn eclipse:eclipse ... 并且不得不放弃在eclipse回声系统中使用maven命令。 M2e似乎有一个非常艰难的时间与野兽合作。

    我仍然使用m2e,但必须说它吞下m2e比使用netbeans中的maven整合困难100倍。另一方面,对于非常大的代码库,eclipse要快得多。选择你的毒药,你总会被咬伤。

     <?xml version="1.0" encoding="UTF-8"?>
        <projectDescription>
            <name>rootPom</name>
            <comment></comment>
            <projects>
            </projects>
            <buildSpec>
                <buildCommand>
                    <name>org.eclipse.m2e.core.maven2Builder</name>
                    <arguments>
                    </arguments>
                </buildCommand>
            </buildSpec>
            <natures>
                <nature>org.eclipse.m2e.core.maven2Nature</nature>
            </natures>
        </projectDescription>
    

答案 5 :(得分:1)

  1. 我已正确配置了java环境变量(即JAVA_HOME)。
  2. 还将jdk路径添加到环境变量path,在我的情况下路径为C:\Program Files\Java\jdk1.8.0_101\bin
  3. 我还在&#34;已安装的JRE&#34;中添加了JDK home的路径。 Eclipse中的偏好。
  4. 不确定哪一个解决了这个问题,我现在看不到自动构建。

    在此之后,我创建了一个新的maven项目。默认设置为1.7,这个项目也导致无限循环。但是在eclipse中没有配置1.7。更新项目属性以使用我的eclipse中可用的java版本已经解决了这个问题。

答案 6 :(得分:0)

我做了类似于Amos M. Carpenter的回复(https://stackoverflow.com/a/28713259/4470352

但我也使用以下配置创建了一个新的自定义构建器:

  1. 选择配置类型 - &gt;程序
  2. 位置(文本框)&lt; = D:\ apache-maven-3.3.9 \ bin \ mvn.cmd(我的自定义专家)
  3. 工作目录(文本框)&lt; = $ {workspace_loc:/ project}
  4. 参数(文本区域)
    • &lt; = clean compile test-DproxySet = true -DproxyHost = a.proxy.host -DproxyPort = 8080
  5. 这会编译我没有进度条的项目,但我可以在文本控制台中看到进度。

    我的问题是每次编译该项目时,我都会下载一个WSDL,我需要提供代理配置。当maven项目构建器插件尝试编译我的项目时,失败并在循环中再次启动。

    我尝试将其设置为settings.xml maven配置文件,但对我没有用,并且在命令行工作中提供代理配置。

    因此,创建该自定义构建器可以完成工作并且是一种新方法。

    我希望它可以帮到你。

答案 7 :(得分:0)

就我而言,我正在使用前端插件使用 react 来运行节点。如果节点正在运行,那么它会停留在调用“Maven 项目生成器”上。我关闭了节点并尽快完成了调用。在 Eclipse 中运行的节点实例产生了问题。我正在使用 Windows,因此进入任务管理器,我关闭了如图所示的节点实例,并且工作正常。您可以检查 eclipse 下是否有任何导致问题的实例。 enter image description here

答案 8 :(得分:0)

Eclipse->首选项-> Maven->安装 删除其他安装,并使用EMBEDDED帮助了我。

触发器是,我想为它设置一个单独的Maven设置 SLF4J:类路径包含多个SLF4J绑定。

答案 9 :(得分:0)

问题可能是代码生成插件,例如openapi-generator-maven-plugin或protoc-jar-maven-plugin。此类插件正在生成重新触发Eclipse编译的代码。防止此行为的解决方案可能是禁用Eclipse“ Maven Project Builder”插件。可以通过将一个条目添加到pom.xml中来完成,如此处所述:https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <!-- Add plugin execution configuration here -->
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

这种插​​件配置可能类似于以下示例:

<pluginExecution>
  <pluginExecutionFilter>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <versionRange>[0.0,)</versionRange>
    <goals>
      <goal>generate</goal>
    </goals>
  </pluginExecutionFilter>
  <action>
    <ignore />
  </action>
</pluginExecution>

或者,可以在月食工作区中全局进行此类设置:窗口> 首选项> Maven > 生命周期映射。 有关此主题的更多信息,请参见:https://www.benchresources.net/eclipse-maven-plugin-execution-not-covered-by-lifecycle-configuration/

答案 10 :(得分:0)

在我从GitHub克隆的项目将其结构更改为多模块Maven项目之后,这发生在我身上。由于某些特定于Eclipse的文件位于.gitignore中,因此即使我从Eclipse中删除了旧项目并将其重新导入为带有子模块的新项目之后,进行git pull仍保留了原始文件。这显然导致了导致该问题的混乱。

导航项目目录并重新克隆项目可以解决此问题。

答案 11 :(得分:0)

从eclipse(不是从磁盘)中删除项目。 并作为“常规>现有项目导入工作区”

答案 12 :(得分:0)

我在eclipse中链接了一些文件,但是源文件丢失了(同时被删除了)。这导致Eclipse重新启动构建。删除断开的链接可以解决问题。

答案 13 :(得分:0)

每次尝试更新Maven项目时,工作站上的Eclipse都会挂起。即使尝试了社区提出的许多解决方案/变通办法,也无法解决该问题。对我唯一有效的方法是运行mvn clean并从命令提示符处安装命令。我在任务管理器中结束任务,运行mvn命令,然后重新启动Eclipse。重新启动日食后运行干净的版本效果很好。

答案 14 :(得分:0)

当maven无法删除某些文件时,通常也会出现此问题。因此,您可以手动转到目标文件夹并清理它并重新启动eclipse。

答案 15 :(得分:0)

我打开了我的模块的.project文件。有两个冗余条目,删除一个帮助

<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>
<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>

答案 16 :(得分:0)

当我将JAVA_HOME更改为新位置时,它有时适合我

答案 17 :(得分:-1)

我有同样的问题。事实证明,我正在使用管道(|)运算符运行Eclipse,并并行运行另一个进程。另一个过程是阻塞我的Eclipse线程。一旦我关闭了其他进程,Eclipse就会正常工作。