2012-06-25 117 views
1

我在eclipse中有一個項目(我們稱之爲項目A),它是一個Maven項目。這是一個由其他項目使用的圖書館。根據本地項目構建Maven JAR

而且我有項目B,它也是一個Maven項目,它依賴於項目A.在項目B的pom.xml中,我添加了一個依賴項引用項目A,它構建並完美地從Eclipse運行。

現在我想從項目B構建一個可執行JAR。以前我通過將maven-assembly-plugin插件添加到pom.xml,然後從命令行運行mvn assembly:single來完成此操作。

當我運行項目B內部mvn assembly:single命令時,它拋出一個錯誤說,它不能找到項目A.

現在被打造爲B中的可執行的JAR文件的最好方法?有沒有一種方法可以從Eclipse構建它(假設它將處理依賴引用,因爲它一直在這樣做),還是有辦法告訴Maven項目A是本地的,它應該使用本地項目A構建項目B.

+2

您是否使用Maven的'install'命令安裝了項目A? – rolve

+0

我從來沒有聽說過這個命令,我現在正在尋找一個示例用法 –

+0

http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using- Maven的 看到這個鏈接,我認爲它可以幫助.. – Sourav

回答

2

將Maven項目用作Eclipse之外的依賴項時,必須先將其安裝到本地存儲庫中。你這樣做使用install命令:

安裝:將軟件包安裝到本地倉庫,用作其他項目的依賴本地

這句話是從Maven in 5 Minutes教程。


「問題」在於Eclipse將像其他任何項目一樣使用其內部編譯器構建Maven項目。由於Maven依賴關係被映射到正常的Ec​​lipse依賴關係,因此您不需要install您的項目。但是,只要你實際使用Maven構建它們(即使在Eclipse中),你也可以。

+0

所有的安裝示例似乎讓你指向一個JAR文件,是否我的意思是我需要手動構建項目A,然後指出然後在B中安裝A. Maven可能不知道構建A然後構建B? –

+1

不可以。否。Maven的所有信息是,您對某個項目具有某個組,名稱和版本的依賴關係。如果它在本地存儲庫(在您的機器上),標準存儲庫(Maven Central)或在POM文件中配置的某個附加存儲庫中找不到它,它將不知道該做什麼。 – rolve

+1

所以,是的,你只需首先安裝項目A,然後就可以構建項目B. – rolve