代码之家  ›  专栏  ›  技术社区  ›  user1589188

您应该在pom中包含那些已经是某些依赖项的依赖项吗?

  •  4
  • user1589188  · 技术社区  · 7 年前

    我相信当A和B是外部库时,可能需要这样做,其中所需的A版本可能与B所依赖的A版本不同。

    但是如果你的模块和A、B都是同一个项目中的模块呢?i、 知道他们的版本都是同步的。

    1 回复  |  直到 7 年前
        1
  •  6
  •   gjoranv    7 年前

    如果您的模块使用B中的api,那么最好的做法是显式地将其添加到pom中,即使这不是严格必要的。如果您升级A,很可能是它不再使用B,然后您将在不更改模块代码的情况下获得生成失败。

    关于版本,您应该使用 dependencyManagement 在父pom中。然后可以跳过子pom中托管依赖项的版本。中的版本 dependencyManagement

    如果所有模块都在同一个项目中,那么它们也应该共享相同的项目版本。通常,这将是一个快照版本,例如。 1-SNAPSHOT

    每个模块将使用以下内容:

    <project>
      <artifactId>A</artifactId>
      <version>1-SNAPSHOT</version>
    

    在其他模块中这样引用A和B:

    <dependency>
      <groupId>com.yourcompany</groupId>
      <artifactId>A</artifactId>
      <version>${project.version}</version>
    </dependency>
    

    versions:set 目标。