2011-01-22 32 views
3

我之前在很多項目中使用過Maven,但他們已經由其他人配置。我很快理解了主要概念(jar,本地和遠程存儲庫的組,工件和版本),因此我假設如果問我可以輕鬆地從頭開始創建一個新項目。有人可以向我解釋Maven 2(或3)依賴關係解析嗎?

事實證明,當我處理多個相互依賴的模塊時,情況並非如此。我圍繞maven文檔進行了探討,但他們要麼過於簡潔,要麼太過於技術性(有時候我感覺Maven人爲自己編寫而不是Maven用戶)。所以我要求社區幫助。

下面是一個典型場景:

三庫:

我正在構建一個普通的Java EE項目ct包含一個EJB jar和一個相應的客戶端jar,一個web模塊和一個JPA模塊(我喜歡讓我的實體和所有db連接與業務邏輯分開)。這給了我在我的IDE 5項目:

  • myapp-ear
  • myapp-ejb
  • myapp-ejb-client
  • myapp-jpa
  • myapp-web

myapp-jpa所使用的myapp-ejbmyapp-webmyapp-ejb-client包含我的EJB的業務接口。

我應該如何設置所有這些?我懷疑我需要某種父項目,但我不確定應該如何組織項目間依賴關係解決方案。例如:目前在我指定

<dependency> 
    <groupId>com.mycompany.myapp</groupId> 
    <artifactId>myapp-jpa</artifactId> 
    <version>0.1-SNAPSHOT</version> 
</dependency> 

myapp-ejbpom.xml行家試圖在我的倉庫搜索,並告訴我,將.jar無法找到。即使我建立並安裝所有應用組件進入我的本地庫逐一的Maven始終未能建立耳朵文件本身:(

我很想得到它Eclipse或NetBeans的下工作。

回答

3

我想你需要一個父項目把它放在一起,在父項目中(這裏是重要的部分),你需要你的依賴關係在父pom的依賴部分中放置不是,而是,您需要在dependencyManagement部分中找到它們,然後在您的子項目中,您可以聲明父項中的依賴關係。

唯一的另一個問題(我能想到的)是,當你在Eclipse中使用版本控制系統檢查項目時,你需要記得檢查父項目「是否爲Maven項目」,否則m2Eclipse插件傾向於嚇壞了,沒有妥善解決問題。

我希望這會有所幫助。