2011-09-07 5024 views
17

我正在使用MyEclipse開發一個非常簡單的Java Struts項目。一切工作正常,直到我想使用類org.apache.commons.lang。在MyEclipse中我進口的包像Maven包錯誤:org.apache.commons-lang不存在(Java)

import org.apache.commons.lang.StringUtils; 

我添加的JAR文件公共琅2.4我的構建路徑。這一切都正常工作,並且我得到了Intellisense,並且在Eclipse中沒有任何錯誤。現在,當我去到做mvn clean package,我得到一個錯誤,說

The package org.apache.commons.lang does not exist

我在戰爭/ pom.xml文件檢查,我確實有它聲明爲依賴

<dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.4</version> 
    </dependency> 

</dependencies> 

從我的研究中,我發現Maven應該下載該軟件包並將其安裝到我的本地存儲庫(如果它不存在)。我檢查了存儲庫並且jar文件在那裏。我認爲jar文件必須損壞,因此我刪除了commons-lang文件夾以獲取commons-lang的新下載。現在,這是我打動了我的想法,在我從本地存儲庫中刪除並運行mvn clean package後,它會出去並下載commons-lang-2.1 .pom和jar(即使pom.xml有2.4)仍然給編譯失敗說包org.apache.commons.lang不存在

我一直沒有使用Maven很長時間,所以我不知道如何去解決這個問題。我錯過了什麼嗎?我是否需要在其他地方的另一個pom.xml文件中添加依賴項?

+0

首先,我刪除了倉庫中的commons-lang,它工作正常。 – vanduc1102

+0

不知道是否有文件損壞或什麼,但通過@ TomaszNurkiewicz的方法確認依賴關係後,我能夠通過在運行測試時從本地m2存儲庫中刪除jar來解決此問題。 – eebbesen

回答

22

嘗試運行以下命令並檢查輸出:

$ mvn dependency:tree 
$ mvn help:effective-pom 

查找commons-lang,也許事情會提醒你注意像排除或依賴覆蓋。還有,就是:

$ mvn dependency:copy-dependencies 

複製commons-lang JAR你target

+5

謝謝,幫助了一堆!我爲commons-lang 2.4添加了一個對我的jar pom.xml的引用,現在它可以工作。在執行clean package之前,我關閉並重新打開命令提示符,然後下載正確版本的jar併成功構建。幾個小時前應該發佈這個問題。謝謝 – Rondel

+0

我們在這裏討論什麼命令提示符?我在Windows 8上使用NetBeans – RedBirdISU

-6

在src/main/java中會有一個.auth文件夾。打開文件夾,轉到AuthController.java文件並刪除導入io.swagger行。重新開始。

相關問題