2012-01-12 37 views
2

我知道,這是不是背後Maven的想法,但是:
Maven的localRepository

我想有一個本地Maven回購(.m2目錄下),使用相對路徑的progect目錄內。 有什麼辦法可以讓我的POM做到這一點?有更好的選擇嗎?

所以,基本上我想要的不是依賴任何外部存儲庫。

THX對您有所幫助:)

PS1 - 我還算是一個java小白(C/C++在這裏),共行家
PS2 - 在Maven安裝目錄的settings.xml文件/ conf有一個localRepository元素,但我相信我不能在那裏有相關的補丁。此外,這不會鏈接到progect,而是鏈接到maven安裝的位置。

+0

你可以嘗試在命令行(-DlocalRepository)或你的pom( ...)上設置localRepository,儘管我懷疑最後一個會起作用。你想達到什麼目的?由於一個模塊無法找到其(僅僅構建的)依賴關係,因此POM級存儲庫可能會破壞多模塊構建。通常,人們使用localRepository設置來防止潛在的從一個構建環境到另一個構建環境的「污染」 - 這很好,但是這是在mvn調用級完成的,而不是在pom級。 – ptyx 2012-01-12 21:57:59

回答

4

注意,在pom.xml中,您可以設置依賴性引用存儲在文件系統中特定的jar文件的位置,假設你有在項目的根文件夾的子文件夾lib中包含所有jar庫:

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.0.4</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/commons-logging-1.0.4.jar</systemPath> 
</dependency> 

通過這樣做,groupId,artifactId和版本變得毫無意義。根據我自己的經驗,我看到一個oracle項目,之前有許多定製的jar與其他人不能通過在線maven倉庫,醜陋但可行。

+0

我相信這就是我要找的!Thx – Uglakh 2012-01-13 00:26:19

+0

@Uglakh,如果答案有幫助,考慮投票或接受它:) – yorkw 2012-01-13 00:35:18

+0

不能投票(這是我得到的是一個潛伏者,沒有足夠的代表)但我已經接受thx @yorkw – Uglakh 2012-01-13 10:18:07

0

我想在一個相對路徑的progect 目錄中有一個本地maven回購(.m2)。有沒有什麼辦法可以讓我的朋友做 這個?

是的,有一種方法:你可以通過在$ M2_HOME \的conf \ Setting.xml的

指定指定路徑到本地回購,但這種做法是不是真的好,如果你(或其他開發人員)工作有多個項目。

有沒有更好的選擇?

是的,有一個更好的選擇:)你可以導入任何廣口瓶在你的本地倉庫,所以你不會依賴於行家中央回購,你會不會被迫來存儲您的項目中的本地倉庫。查看這篇小文章How To Include Custom Library Into Maven Local Repository?以瞭解如何做到這一點。

使用這種方法,您可以將所有必需的第三方罐子存儲在您的項目中,以及將罐子導入本地倉庫的shell /批處理腳本。開發人員只需執行腳本即可將依賴項導入本地回購站,而不用修改maven設置,以便從某個特定位置(從項目中)使用本地回購站。