2011-05-30 266 views
3

我正在開發一個multimodule maven項目。前段時間,該項目被劃分爲子項目:在maven多模塊項目中,如何打包單個子項目?

  • 「通用」 JAR項目
  • 「用戶」 WAR項目,根據通用

這是該項目作爲同描述爲here, in this question

當我在上層項目級別調用mvn package,命令執行成功並導致戰爭可以部署。但是,如果我嘗試在子項目級調用mvn package,則命令失敗。

[ERROR] Failed to execute goal on project User: Could not resolve 
dependencies for project xxx.xxx:User:war:0.0.1-SNAPSHOT: Failed 
to collect dependencies for [xxx.xxx:Common:jar:0.0.1-SNAPSHOT (compile), ... 

顯然Maven是試圖從遠程回購下載我自己的項目(通用)...

Downloading: http://repository.jboss.org/maven2/xxx/xxx/Common/0.0.1-SNAPSHOT/maven-metadata.xml 
Downloading: http://download.java.net/maven/glassfish/xxx/xxx/Common/0.0.1-SNAPSHOT/maven-metadata.xml 
[WARNING] Could not transfer metadata xxx.xxx:Common:0.0.1-SNAPSHOT/maven-metadata.xml from/to jboss (http:/ 
/repository.jboss.org/maven2): Access denied to: http://repository.jboss.org/maven2/xxx/xxx/common/0.0.1-SNA 
PSHOT/maven-metadata.xml 

什麼可能是錯誤的,我的配置?

回答

2

當您從superprojectmvn package,它會在相應的文件夾target文物,但不會在你的本地庫不安裝他們。

所以,當你在一個subproject,這對兄弟module一個dependency運行mvn package,它會在你的本地倉庫的dependency,沒有找到它,從而嘗試從配置的各種信息庫下載。

一旦您成功運行mvn installsuperproject,子項目上的一個mvn package應該工作。

0

你必須在你的pom.xml或settings.xml中一(JBoss的)庫條目無論是。 要訪問此存儲庫,它需要進行身份驗證。如果你用瀏覽器調用路徑,你也會得到「403 Forbidden」。你必須添加一個Jboss的公共存儲庫。 (http://repository.jboss.org/)

0

我已經花了很多時間去找出這種「錯誤」的,這要歸功於Raghuram,我試圖找到解決方案時愚蠢但實際上是沒有錯誤,只是因爲我沒有MVN在一個子模塊安裝這取決於其他模塊的依賴性,當我在父範圍上運行mvn install/package時,它應該工作正常。