2012-01-05 51 views
0

我有這樣的一些依賴項。例如:JDICmaven中的非常規依賴項名稱

在我的pom.xml中,我定義了一個依賴

<dependency> 
<artifactId>jdic</artifactId> 
<groupId>jdic</groupId> 
<version>0.8.6</version> 
</dependency> 

而且我有一個遠程存儲庫(內部服務器):如http://repo/thirdparty/ 而JDIC可以http://repo/thirdparty/jdic/jar/jdic.jar

找到正如你注意到的,命名不是傳統的groupId:artifactId:版本,而是它的只是jdic.jar

所以當我運行maven編譯

mvn clean compile 

maven告訴我它無法解決依賴關係。 我知道,我們可以只下載那些罐子到本地倉庫.m2目錄/存儲庫和運行

mvn compile (ie without clean) 

,它的罐子不會是一個問題。但是,除了非傳統的名稱和缺乏這些依賴關係的元數據/ pom信息之外,是否還有其他方式可以從遠程獲取?

我已經有一個鏡子,它覆蓋中央

回答

0

你可以安裝JDIC與版本(jdic-0.8.6.jar)內部/倉庫鏡像該內部存儲庫。

如果您使用存儲庫管理器並將jar上傳到它,它會自動爲它創建一個pom,並確保依據是使用版本創建的依賴項,如按照maven約定。

+0

我創建了另一個名爲.maven3的本地存儲庫。在我的項目的settings.xml中,我重新定義了 $ {user.home} /。maven3/repository(可以使用屬性$ {user.home}?) 然後我將jdic的jar安裝到〜/ .maven3 /庫/ JDIC/JDIC/0.8.6/JDIC-0.8.6.jar 爲此JDIC-0.8.6.jar是一個符號鏈接jdic.jar 然後我跑MVN安裝 它仍然無法下載依賴項 – ALQH 2012-01-05 21:24:48

+0

我剛發現如果我把$ {user.home}/.maven3/repository,本地存儲庫現在是myProjectnameWhereIRunMaven /〜/ .maven3/repository 奇數... – ALQH 2012-01-05 21:44:13

0

遠程Maven倉庫不是任何Web服務器以任何你想要的方式放置文件。有很多約定可以遵循。其中之一就是表示版本的方式(這是工件的一個重要元素)。通過你的「遠程倉庫」,很明顯Maven無法找到這個工件。

設置一個真正的Maven遠程存儲庫來託管這些文件。你可以看看Nexus和Artifactory。

+0

什麼是Maven倉庫的文件結構?我嘗試手動將jar安裝到本地存儲庫並運行mvn install,依賴項仍然無法解析。 – ALQH 2012-01-05 21:27:30

+1

你不應該關心文件結構。谷歌爲「maven安裝第三方庫」,並學習如何正確安裝使用Maven2/3的工件。而且,我正在談論遠程存儲庫,而不是本地回購。 (你在你的文章中說過,如果你在本地倉庫中安裝JAR,那麼你確定,但是現在你說它不起作用?你能否清楚你的問題?) – 2012-01-06 08:09:56

+0

如果我將jar安裝到本地倉庫中,因爲Maven會首先檢查本地倉庫。但我想要的是從遠程回購下載它是一個Maven 1回購。它沒有找到遠程回購的罐子,很可能是因爲它的Maven 1回購。 ..對不起,混淆 – ALQH 2012-01-09 00:25:04