2012-04-12 68 views
8

在定製geotools平臺編譯(實際上是基於OSGi)的一個模塊編譯正確,當我嘗試separetly建立它。但是當我構建整個項目時 - 它在compile階段失敗,原因是它找不到某些包/類。更高的依賴性解決好。行家解決dependecy但它無法找到包/班

這裏是從模塊的pom.xml的依賴:

<dependency> 
    <groupId>org.picocontainer</groupId> 
    <artifactId>com.springsource.org.picocontainer</artifactId> 
    <version>1.2.0</version> 
</dependency> 

Maven的生成錯誤的一部分:

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xs\bindings\XSGroupBinding.java:[19,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\AbstractComplexBinding.java:[20,24] package org.picocon tainer does not exist

...\geotools-osgi\modules\extension\xsd\xsd-core\src\main\java\org\geotools\xml\ComplexBinding.java:[21,24] package org.picocontainer does not exist

如果我改變的pom.xml dependecy - 它失敗某種「無法解析捆綁」。

該項目是真正的大和束和父/子多金屬氧酸鹽的數量。所以我不能在這裏發佈所有這些。 所以我的問題是:這種麻煩的可能原因是什麼?它可能是父母/孩子之間的依賴衝突嗎?

+0

我不認爲這可能是由親子關係造成的,因爲無論你是否只在整體上構建這個模塊或項目,classpath是相同的。嘗試使用'-X'調試選項來執行構建,它可能會有所幫助。附: 'org.picocon tainer'這是一個錯字嗎? – 2012-04-12 19:42:14

+0

是的,那是與格式有關的錯字,很抱歉。 – 2012-04-14 07:29:07

回答

1

那麼,實際的原因是,在目標計算機有限制的接入到互聯網,所以受限訪問的Maven回購。有了一些黑魔法,它不會因某種'無法下載神器'而失敗(可能是因爲手動安裝了一些jar文件)。 所以我們得到了正常訪問的服務器,將它設置爲鏡像,配置我們的maven使用鏡像,並解決了問題。 謝謝@Samuel參與我的問題,但正如我所看到的,無法從問題描述中確定問題。

5

我可以看到兩件事情,試圖解決它。

首先,如果你在你的本地.m2回購中,你會看到是否有其他版本的lib(但是,有時不同的版本可以有不同的名稱,因此可以存儲在不同的文件夾中,沒有幫助)

您還可以檢查什麼實際使用的依賴,在你的IDE,或者在命令行(MVN依賴性:樹)。 您可能必須排除一些傳遞性依賴關係才能保持一致。我使用Eclipse插件。

最後,當你確定你使用的依賴,你可以打開罐子,看看是否是你期待在那裏存在。

+0

感謝您的快速回復。正如你所建議的,我做了一個依賴性檢查'mvn dependency:tree',它沒有顯示任何錯誤 - BUILD SUCESSFUL。 Thec通過關鍵詞'picocontainer'在文件夾.m2/repository中搜索只顯示一個.jar - 恰好就是我需要的一個,它不是空的 - 它包含我需要的所有必需的包和類。 – 2012-04-12 12:50:19

+0

您的IDE是否成功地編譯了您的代碼?你使用哪個IDE? – 2012-04-12 15:02:14

0

我有同樣的問題。我的問題是依賴被設置爲測試。所以當我發佈exec:java時,它找不到該類,因爲它超出了範圍。

相關問題