eclipse - unknown tag c foreach




Eclipse項目中缺少Maven依賴項 (20)

Maven的依賴關係:Eclipse中為我解決了什麼問題? 我在“pom”文件中添加了依賴關係。 我做了一個構建,但在Eclipse中看不到Maven Dependency。 下一步:關閉該項目。 然後重新打開該項目。 我可以看到Maven的依賴關係。

我們有一個用maven來解決依賴問題的項目。 它通常工作正常,但現在我正嘗試在新PC上編譯和運行它,並且在Eclipse中缺少依賴關係時遇到問題。

有趣的是,如果我在控制台或eclipse中運行“mvn package”,它可以正常工作,甚至會產生包含所有必需罐子的戰爭。 只有Eclipse抱怨:“該項目沒有構建,因為它的構建路徑不完整,無法找到org.slf4j.Logger的類文件...”。 如果我將該項目與其他計算機(項目工作正常)進行比較,我注意到在Eclipse中列出的“Maven依賴關係”下有很多庫缺失。 儘管它們在打包的戰爭中,並且它們也可以在存儲庫文件夾下找到。

所以,jar-s就在那裡,Eclipse不會在“Maven dependencies”下列出它們。 我能做什麼?

計算機運行在64位Java和eclipse的Windows 7上。


上述解決方案都不適合我,所以這個答案適用於我的情況下的任何其他人。 我最終自己發現了這個問題,並且提出了另一種解決方案 pom.xml文件包含一個包裝依賴關係的dependencyManagement標記,當存在時,M2Eclipse不會添加Maven Dependencies文件夾。 於是,我刪除了這個標籤,然後執行了Utter Jr.提供的解決方案,Eclipse立即添加了缺失的文件夾!


問題解決了!

我不知道究竟是什麼解決了它,但我在Eclipse中做了4件事情:

  • Window-> Preferences:Maven-> Installations:全局設置 - >打開文件和硬編碼的localRepository
  • 項目 - >清除
  • 右鍵單擊項目:Maven->更新依賴項
  • 右鍵單擊項目:Maven->更新項目配置

我想這是更新依賴關係,因為在第一個兩個之後沒有任何改變。


在Eclipse STS中,如果“Maven Dependencies”消失了,你必須檢查並修復你的pom.xml 。 我做了這個(兩次),我解決了它。 這不是一個依賴問題,而是一個字符串生成並隨機移動到我的pom.xml


好吧,我嘗試了一切張貼在這裡,不幸的是,nothings在我的情況下工作。 所以,嘗試不同的組合來解決我的問題。

1)在你的eclipse項目的根目錄下打開.classpath文件。

2)將以下條目插入文件中:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

然後,在eclipse中重建你的項目(Project-> Clean-Build)。 您現在可以在Libraries選項卡的Maven Dependencies中檢查您的Java Build Path項目:


好吧,我嘗試了一切張貼在這裡,不幸的是,nothings在我的情況下工作。 所以,嘗試不同的組合來解決我的問題。

1)在你的eclipse項目的根目錄下打開.classpath文件。

2)將以下條目插入文件中:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

然後,在eclipse中重建你的項目(Project-> Clean-Build)。


如果有人嘗試了其他所有選項,但仍然卡住,請嘗試右鍵單擊項目文件夾,轉到Maven選項並單擊“添加依賴關係”按鈕。 出於某種原因,Eclipse並未在第一次嘗試時從pom.xml手動更新依賴項。


對我來說問題是maven無法找到位於myMavenFolder \ conf中settings.xml文件。

我所做的解決這個問題的方法是從eclipse中選擇settings.xml文件的正確位置:
窗口 - >首選項 - > Maven - >用戶設置

最後,點擊應用並更新您的項目


對於我的情況下的以下步驟:

1在eclipse上,右鍵單擊所需項目Maven - >禁用Maven Nature

2再次右鍵單擊,然後轉到屬性。 刪除外部Maven依賴項的所有證據,只留下JRE系統庫。

3再次右鍵單擊該項目,然後轉到配置 - >轉換為Maven項目

它也適用於我


對於我的情況下的以下步驟:

1在eclipse上,右鍵單擊所需項目Maven - >禁用Maven Nature

2再次右鍵單擊,然後轉到屬性 。 刪除外部Maven依賴項的所有證據,只留下JRE系統庫。

3再次右鍵單擊該項目,然後轉到配置 - >轉換為Maven項目


我也遇到過這個問題。 它讓我困惑了幾個小時。 我嘗試了很多本主題中提出的解決方案。 最後,我發現這是由於Java元素過濾器。


我可以解決這個錯誤1)右鍵單擊(您的Maven項目) - > Maven - > Maven安裝

安裝成功後

2)右鍵單擊(你的maven項目) - > maven - >更新項目。 maven的整個錯誤都解決了!


我有一個類似的問題,並嘗試在這篇文章中的所有答案。 我最近解決這個問題的方法是將Joseph Lust和Paul Crease的解決方案結合在一起。 刪除並重新導入項目後,我添加了備份的pom.xml文件,直到我刪除了pom.xml中的依賴關係管理標記,並且神奇地依賴關係文件夾在那裡,才顯示出來。

但是,由於它們需要父pom.xml依賴項管理來運行,所以它打亂了POM的子項,結果我的MVN無法從Eclipse或命令行正常運行,從而導致pom.xml錯誤。

如果全部失敗,最後的解決方案是手動導入項目所需的.jar文件。 右鍵單擊項目Properties - > Java Build Path - > Libraries並添加外部Jar。

如果您的MVN從命令行正常工作,並且您已經成功構建了項目,那麼您的.m2 / repository文件夾中將需要所有的回購站。 添加pom.xml的依賴關係標籤中提到的所有外部jar,你會在Eclipse中看到一個被引用的庫部分,所有討厭的紅色錯誤消失了。

這不是最佳的解決方案,但它可以讓你在Eclipse中工作,沒有任何遺漏依賴的錯誤,還允許你從Eclipse和命令行構建Maven項目。


我有類似的問題。 我通過運行Maven-> Update Project Configuration操作來解決它


我的答案與@JerylCook的答案類似:在一個正在運行的Maven項目中找到另一個.classpath文件,將其編輯為不錯的工作文件。 關鍵是添加

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

在類型consrc每個<classpathentry>中。 不要忘記將<classpathentry .... />更改為<classpathentry ...>xxx</classpathentry>

最後,更新maven項目並在maven中重新安裝/重建。


我的項目被搞砸了。 下面是我為Eclipse Indigo x64(J2EE 3.7.3)修復它的方法:

  1. 刪除我的POM文件(當然是備份)。
  2. 項目上下文菜單 > Maven > 禁用Maven自然
  3. 刪除項目(但不包括磁盤上的內容)。
  4. 重新導入為導入 > 常規 > 現有項目
  5. 項目上下文菜單 > 配置 > 轉換為Maven項目...。
  6. 接受來自Maven嚮導的默認值。
  7. 用你的備份POM覆蓋POM。 (現在你有Maven Dependencies文件夾 )。
  8. Maven更新/清理以獲得更好的效果。

希望能幫助別人。 :)


更新下面的.classpath將會每次都有效。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

這個問題有如此多的不同原因和可能的解決方案,真是太棒了。 我發現了另一種適用於我的解決方案。

好吧,這不是一個解決方案,而是一個發現:我可以在Package Explorer中看到Maven Dependencies節點,這是Java透視圖的默認設置,但在Java EE透視圖中看不到它,該透視圖使用Project Explorer默認。 這兩位探險家在快速瀏覽中看起來非常相似,因此您可能希望在兩者中都看到Maven依賴關係。

當我試圖解決這個問題時,我沒有意識到這種差異,因此畢竟它對我來說不是一個真正的問題。


這是我解決它的方式

  • 窗口 - >首選項:Maven->用戶設置(在結果窗口中單擊“打開文件”,或者使用外部文本編輯器(如記事本)編輯settings.xml)確保localRepository(顯示在此窗口中)是正確的。 我的文件中有一個錯字。
  • 一旦你糾正了settings.xml,點擊更新設置,這是在這個相同的首選項 - > Maven->用戶設置屏幕上。

現在重建,它會將最新的JAR安裝在正確的位置。


這麼多答案。 你看,可能有很多原因,為什麼這不起作用,如預期的那樣。 在我的情況下,我也沒有意識到 - 我的依賴標籤。 捂臉

例:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

這只是定義了這個和所有子項目與所需版本的依賴關係! 這就是它在主POM中應該看起來的樣子。 為了真正使用這個當前項目中的lib,你也可以添加如下的依賴項:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
</dependencies>

現在它將提供這個當前項目中的lib。







m2eclipse