2013-02-01 135 views
0

默認情況下,我知道使用Maven依賴關係,它將從本地回購(.m2目錄)中獲取所需的所有內容。在我的應用程序中,我不希望它依賴於本地目錄,而是來自特定位置。我使用<scope>system</scope><systemPath>../path/to/file/</systemPath>,但它仍然依賴於.m2目錄。無論如何,我可以改變Maven依賴關係的依賴嗎?Maven-2:如何管理依賴依賴的地方?

與我的應用程序,我使用本機代碼(C++),並有.nar.so文件。在這個例子中,我特別需要依賴於特定目錄中的.so文件,但它總是進入.m2目錄。有沒有可以解決這個問題的插件?

另外,要注意我正在使用Maven 2.2.1。

回答

1

首先在Maven中沒有什麼可解決的。 Maven正在這樣工作。在你的情況下,你需要一個不在Maven倉庫中的工件,這意味着你需要將該文件轉移到Maven倉庫中,然後你可以使用簡單的依賴來使用該文件(.so)。有兩個可能的解決方案:

使用install-file到特定的文件安裝到你的本地庫的假象給予的groupId,artifactId和version

MVN安裝:安裝文件...

的其他最好的解決方案是使用repository manager並將所需的文件安裝到存儲庫管理器中,這使得其他人也可以使用,而不僅僅是由您來使用。

+0

有沒有辦法覆蓋依賴目錄從本地回購到自定義路徑? –

+0

@Rob,有一種方法來設置repo目錄,但maven只需將所有的依賴關係下載到新的位置。如果你有一個通常不能通過maven central獲得的依賴,你通常按照描述手動安裝它,或者給它一個系統範圍並指定它的路徑。 –