![](/img/trans.png)
[英]Eclipse Building Workspace always slow due to Invoking “Maven Project Builder”
[英]Eclipse loops endlessly: Invoking 'Maven Project Builder'
啊! 我的 Eclipse 陷入無限循環:
建築工作空間永遠不會超過 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 沒有顯示任何標記。 但是現在我有這種無盡的刷新和構建,並且不知道是什么導致它或如何修復它。
版本:
任何意見是極大的贊賞。
我打開了模塊的 .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,即使在日食火星,似乎也喜歡無限的建築。
就我而言,沒有重復構建命令之類的東西,如下所列。 當項目樹巨大時,唯一似乎有效的是:
否則,您將堅持使用已棄用的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>
JAVA_HOME
)。C:\\Program Files\\Java\\jdk1.8.0_101\\bin
jdk 路徑添加到環境變量path
,在我的情況下路徑是C:\\Program Files\\Java\\jdk1.8.0_101\\bin
。不確定其中哪一個解決了問題,我現在沒有看到自動構建發生。
在此之后,我創建了一個新的 maven 項目。 默認情況下設置為使用 1.7,這個項目也導致了無限循環。 但是1.7沒有在eclipse中配置。 更新項目屬性以使用我的 eclipse 中可用的 java 版本已經解決了這個問題。
我做了一些類似於 Amos M. Carpenter 的回應( https://stackoverflow.com/a/28713259/4470352 )
但我也使用以下配置創建了一個新的自定義構建器:
這為我編譯了沒有進度條的項目,但我可以在文本控制台中看到進度。
我的問題是每次編譯該項目時,我都會下載一個 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 綁定。
我有同樣的問題。 事實證明,我使用管道 (|) 運算符運行 Eclipse,並行運行另一個進程。 另一個進程阻塞了我的 Eclipse 線程。 一旦我關閉了另一個進程,Eclipse 就可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.