簡體   English   中英

Eclipse 無休止地循環:調用“Maven Project Builder”

[英]Eclipse loops endlessly: Invoking 'Maven Project Builder'

啊! 我的 Eclipse 陷入無限循環:

  • 暫無操作顯示
  • 令人耳目一新的工作空間建築
  • 工作區。 在 /MobileWebApp 上調用“Maven Project Builder”

建築工作空間永遠不會超過 58%。

細節:

Google 的 GWT 提供了一個示例應用程序 MobileWebApp。 他們建議通過 File > Import > Checkout Maven projects from SCM 將它添加到 Eclipse

我按照此博客中的說明添加了 m2e、subclipse 和 m2e-subclipse 連接器的插件。

安裝插件后,我通過 File > Import > Checkout Maven projects from SCM 和這個 URL導入了示例項目。

導入似乎完成了,Eclipse 沒有顯示任何標記。 但是現在我有這種無盡的刷新和構建,並且不知道是什么導致它或如何修復它。

版本:

  • 日食靛藍 3.7
  • m2e 1.0.100
  • 用於 build-helper-maven-plugin 0.14 的 m2e 連接器
  • Subclipse 0.13 的 Maven SCM 處理程序
  • 子剪輯 1.6.18
  • Subclipse 客戶端適配器 1.6.12

任何意見是極大的贊賞。

我打開了模塊的 .project 文件。 有兩個條目:

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

我刪除了 org.eclipse.m2e.core.maven2Builder 條目,它神奇地解決了這個問題。

我可以通過右鍵單擊項目並選擇 Run As > Maven Clean 來解決這個問題

我在與 GWT 無關的 Eclipse (Juno) Maven 項目中遇到了同樣的問題——它只是不斷刷新和“調用 Maven 項目生成器”。 轉到“進度”視圖並請求取消任一進度條目(通過單擊右側的紅色停止按鈕)沒有幫助。

構建器一直堅持的項目總是相同的,並且在 eclipse 中的一組多 pom maven 項目中深入了幾個級別。

最終為我解決的只是進入該特定項目的Properties > Builders並取消選中Maven Project Builder (但保持選中Java Builder以便在代碼更改時它仍然會自動構建)。 我只是忽略了關於這是一個“高級操作”並且可能有“許多副作用”的警告——我認為它不會比持續的構建-刷新周期更煩人。 我仍然不確定這個循環的原因是什么,但這對我來說停止了。 從那以后我沒有遇到任何問題。

我實際上解決了由 jaxb 插件引起的問題。 如果 forceRegenerate 設置為 true,您將在 eclipse 中獲得構建循環(在我的情況下為 Kepler)。

驗證您在 maven-jaxb-plugin 中是否將 forceRegenerate 設置為 false。

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

M2e,即使在日食火星,似乎也喜歡無限的建築。

就我而言,沒有重復構建命令之類的東西,如下所列。 當項目樹巨大時,唯一似乎有效的是:

  1. 開放日食
  2. 打開 eclipse 后立即禁用自動構建
  3. 刷新工作區並手動觸發Crtl + B或全部構建。
  4. 一旦 Eclipse 對它構建完整的項目樹感到滿意......最好有四核機器,否則你會等待一段時間,你可以很好地將自動構建選項置於活動狀態。 之后 Eclipse 似乎並沒有大肆建設。 它仍然會掃描一些文件夾一段時間,但是自動激活構建 - 一旦你之前構建了它 - 比新構建快得多,最后,eclipse變得穩定無限地停止構建。

否則,您將堅持使用已棄用的mvn eclipse:eclipse ...並且必須放棄使用 eclipse echosystem 中的 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>

問題可能是代碼生成插件,如 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>

或者,可以為 Eclipse 工作區全局完成此類設置: Window > Preferences > Maven > Lifecycle Mappings 可以在此處閱讀有關此主題的更多信息: https : //www.benchresources.net/eclipse-maven-plugin-execution-not-covered-by-lifecycle-configuration/

當 maven 無法刪除某些名稱過長的文件時,通常也會出現此問題。 因此,您可以手動轉到目標文件夾並清理它並重新啟動 eclipse。

當我將 JAVA_HOME 更改為新位置時,它有時對我有用

我打開了模塊的 .project 文件。 有兩個多余的條目,刪除一個有幫助

<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>
<buildCommand>
    <name>org.eclipse.m2e.core.maven2Builder</name>
    <arguments>
    </arguments>
</buildCommand>
  1. 我已經正確配置了 java 環境變量(即JAVA_HOME )。
  2. C:\\Program Files\\Java\\jdk1.8.0_101\\bin jdk 路徑添加到環境變量path ,在我的情況下路徑是C:\\Program Files\\Java\\jdk1.8.0_101\\bin
  3. 我還在 Eclipse 的“已安裝 JRE”首選項中添加了 JDK 主目錄的路徑。

不確定其中哪一個解決了問題,我現在沒有看到自動構建發生。

在此之后,我創建了一個新的 maven 項目。 默認情況下設置為使用 1.7,這個項目也導致了無限循環。 但是1.7沒有在eclipse中配置。 更新項目屬性以使用我的 eclipse 中可用的 java 版本已經解決了這個問題。

我做了一些類似於 Amos M. Carpenter 的回應( https://stackoverflow.com/a/28713259/4470352

但我也使用以下配置創建了一個新的自定義構建器:

  1. 選擇配置類型 -> 程序
  2. 位置(文本框)<= D:\\apache-maven-3.3.9\\bin\\mvn.cmd(我的自定義 maven)
  3. 工作目錄(文本框)<= ${workspace_loc:/project}
  4. 參數(文本區域)
    • <= 干凈編譯測試-DproxySet=true -DproxyHost=a.proxy.host -DproxyPort=8080

這為我編譯了沒有進度條的項目,但我可以在文本控制台中看到進度。

我的問題是每次編譯該項目時,我都會下載一個 WSDL,並且需要提供代理配置。 當 maven 項目構建器插件嘗試編譯我的項目時,失敗並在循環中再次啟動。

我試圖將它設置到 settings.xml maven 配置文件中,但對我不起作用,並且在命令行中提供代理配置有效。

因此,創建該自定義構建器可以完成這項工作,並且是一種新方法。

我希望它能幫助你。

每次嘗試更新 maven 項目時,我工作站上的 Eclipse 都會掛起。 即使在嘗試了社區建議的許多解決方案/解決方法后,問題仍未解決。 唯一對我有用的是從命令提示符運行 mvn clean 並安裝命令。 我在任務管理器中結束任務,運行 mvn 命令,然后重新啟動 eclipse。 重新啟動 eclipse 后運行 clean build 工作正常。

我在 Eclipse 中鏈接了一些文件,但源文件丟失(同時刪除)。 這導致 eclipse 重新啟動構建。 刪除斷開的鏈接解決了問題。

從 eclipse(而不是從磁盤)中刪除項目。 並作為“General>Existing Projects into Workspace”導入

在我從 GitHub 克隆的一個項目將其結構更改為多模塊 Maven 項目之后,這發生在我身上。 由於某些特定於 Eclipse 的文件位於.gitignore ,因此即使在我從 Eclipse 中刪除舊項目並將其重新導入為帶有子模塊的新項目后,執行git pull .gitignore保留原始文件。 這顯然引起了一些混亂,導致了這個問題。

Nuking 項目目錄並重新克隆項目解決了該問題。

Eclipse -> Preferences -> Maven -> Installations 刪除附加安裝並使用 EMBEDDED 幫助了我。

觸發是,我想為 SLF4J 設置一個單獨的 maven 設置:類路徑包含多個 SLF4J 綁定。

就我而言,我正在使用前端插件使用 react 來運行節點。 如果節點正在運行,那么它會停留在調用“Maven 項目生成器”上。 我關閉了節點並盡快完成了調用。 在 Eclipse 中運行的節點實例產生了問題。 我正在使用 Windows,因此進入任務管理器,我關閉了如圖所示的節點實例,並且工作正常。 您可以檢查 eclipse 下是否有任何導致問題的實例。 在此處輸入圖片說明

我有同樣的問題。 事實證明,我使用管道 (|) 運算符運行 Eclipse,並行運行另一個進程。 另一個進程阻塞了我的 Eclipse 線程。 一旦我關閉了另一個進程,Eclipse 就可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM