【问题标题】:Can someone explain Maven 2 (or 3) dependency resolution to me?有人可以向我解释 Maven 2(或 3)依赖解析吗?
【发布时间】:2011-06-13 20:34:28
【问题描述】:

我之前在很多项目中使用过 Maven,但我们已经由其他人配置了它们。我很快就理解了主要概念(组、工件和 jar 版本、本地和远程存储库),所以我假设如果有人问我,我将能够轻松地从头开始设置一个新项目。

当我处理多个相互依赖的模块时,情况并非如此。我浏览了 Maven 文档,但它们要么过于简洁,要么过于技术化(有时我觉得 Maven 是为自己编写的,而不是为 Maven 用户编写的)。所以我正在寻求社区帮助。

这是一个典型的场景:

三个存储库:

我正在构建一个普通的 Java EE 项目,该项目由一个 EJB jar 和一个相应的客户端 jar、一个 Web 模块和一个 JPA 模块组成(我喜欢将我的实体和所有数据库连接与业务逻辑分开)。这给了我 IDE 中的 5 个项目:

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

myapp-jpamyapp-ejbmyapp-web 使用。 myapp-ejb-client 包含我的 EJB 的业务接口。

我应该如何设置所有这些?我怀疑我需要某种父项目,但我不确定我应该如何组织项目间依赖关系解析。例如:当前当我指定

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

myapp-ejbpom.xml 中,maven 尝试在我的存储库中搜索它并告诉我找不到.jar。即使我将所有应用程序组件一个一个地构建并安装到我的本地存储库中,Maven 也总是无法构建 ear 文件本身:(

我想让它在 Eclipse 或 NetBeans 下工作。

【问题讨论】:

    标签: eclipse netbeans jakarta-ee maven m2eclipse


    【解决方案1】:

    我认为你走在正确的道路上。您需要一个父项目来将它们整合在一起。在父项目中(这是重要的部分),您需要在父 pom 的依赖项部分中布置您的依赖项NOT,而是在您的dependencyManagement 部分中需要它们。然后,在您的子 pom 中,您可以声明父级中的依赖项。

    唯一的另一个问题(我能想到的)是,当您在 Eclipse 中使用版本控制系统检查项目时,您需要记住将父项目“作为 Maven 项目”检查,否则 m2Eclipse 插件往往会崩溃并没有正确解决问题。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-08
      • 2010-10-13
      • 1970-01-01
      • 2021-02-18
      • 2012-04-09
      • 1970-01-01
      • 2023-02-08
      • 2011-01-08
      相关资源
      最近更新 更多