2011-01-22 29 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插件倾向于吓坏了,没有妥善解决问题。

我希望这会有所帮助。