2017-08-18 39 views
-1

我覺得我必須在這裏缺乏一些非常基本的Maven知識。我有一個(幾個)maven項目和一個共享庫。這個庫應該是一個獨立的Maven項目,擁有自己的生命週期。我試圖庫導入使用我的項目:如何使用本地項目的本地maven快照

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>nl.whatever.com</groupid> 
     <artifactId>my_shared_library</artifactId> 
     <version>1.0-SNAPSHOT</groupid> 
     </dependency> 

     ... 
    </dependencies> 
</dependencyManagement> 

但行家繼續尋找我的清樣,而不是試圖找到我的本地版本。最糟糕的是,它一直在尋找一個罐子。我得到:

Could not resolve dependencies for project my.project:ejb:1.0-SNAPSHOT: Could not find artifact nl.whatever.com:my_shared_library:jar:1.0-SNAPSHOT

什麼是我的新手的錯誤?是的,我做了一個乾淨的安裝我的圖書館項目。

編輯:

我.m2目錄目錄下有一個設置文件重定向我的本地攝製於

/ws/repro, which contains: 
/ws/repro/nl/whatever/com/my_shared_library/1.0-SNAPSHOT/ 
    my_shared_project-1.0-SNAPSHOT.jar.lastUpdate 
    my_shared_project-1.0-SNAPSHOT.pom 

和一些屬性文件。

edit2: 我不認爲這是重複的。我在發佈我的問題之前查看了鏈接的問題。這裏沒有涉及非maven項目或外部jar。

+0

您是否已確認工件罐在您的本地'.m2'文件夾中的正確位置? – Strelok

+0

你說你運行過安裝,但是你的共享庫的pom文件是用你在dependency中定義的信息來配置的嗎? – pabrantes

+0

我不認爲這個問題是所述問題的重複。這不是關於安裝外部文件,而是關於建立一個庫,以便其他項目可以使用它。 –

回答

0

您的本地存儲庫通常位於用戶存儲庫下方的.m2/repository中。如果您在庫項目上執行clean install,則應將其安裝到此存儲庫(位於nl/whatever/com/my_shared_library/...)。然後,您可以在同一臺計算機上的所有其他Maven項目中使用它。

更重要的是<packaging>是正確的,即包裝需要匹配您想要構建的工件。如果包裝是pom,那麼你只能創建一個pom(比如父母或母親)。暗含包裝標籤意味着您使用包裝jar

+0

我爲什麼低調? –

+0

爲什麼要刪除.lastupdate文件,以及如何爲我提供我顯然需要的jar? – Arne

+0

lastupdated文件阻止您使用jar,因爲它們告訴Maven該jar不存在。這是沒有得到應該出現的jar的常見原因。你看過你的本地存儲庫嗎?它是否包含您使用「全新安裝」構建的庫? –

-1

您應嘗試使用名爲repositories的標記更新您的pom.xml。

Maven repositories是持有構建工件和不同類型的依賴關係的地方。

其值的樣本行家遠程倉庫標籤是:

<repositories> 
    <repository> 
    <id>central</id> 
    <name>Maven Repository</name> 
    <url>http://repo1.maven.org/maven2</url> 
    </repository> 
</repositories> 

配置多個版本庫,你可以按照guide並利用配置文件的Settings.XML中也是如此。


在旁註中,除非遵循層次結構或使用特定版本的庫。您應該使用<dependencies>而不是<dependencyManagement>,看看differences between dependencymanagement and dependencies in maven

+0

會期望會員降級的一些原因。或者你期望如何改進? – nullpointer

+0

有時,不是回答的人必須改善,而是選民。 – duffymo

相關問題