【问题标题】:Maven: Re-use a POM file in every projectMaven:在每个项目中重用 POM 文件
【发布时间】:2011-02-17 15:57:29
【问题描述】:

我的目标实际上很简单,但由于有多种(并且看似复杂的方法可以做到这一点)我想知道我需要做什么......所以我有一些需要的运行时库(特别是 ADF 库)添加到每个项目。这个父 pom 文件将只包含 JAR 依赖项。如何从子 pom 文件中使用这个 pom 文件?

【问题讨论】:

    标签: java maven-2 maven


    【解决方案1】:

    我不认为在这里使用继承是一个好的解决方案。即使每个项目都使用 ADF 工件,您也不希望所有 pom 都获得这些依赖项,因此在公司父 pom 中声明它们并不是一个真正的选择。

    因此,我的建议是创建一个带有 pom 打包的项目,以将 ADF 依赖项组合在一起:

    <project>
      <groupId>com.mycompany</groupId>
      <artifactId>adf-deps</artifactId>
      <version>1.0</version>
      <packaging>pom</packaging>
      <dependencies>
        <dependency>
          <groupId>some.groupId</groupId>
          <artifactId>adf-artifact-1</artifactId>
          <version>${jdev.version}</version>
        </dependency>
        ...
        <dependency>
          <groupId>some.groupId</groupId>
          <artifactId>adf-artifact-n</artifactId>
          <version>${jdev.version}</version>
        </dependency>
      </dependencies>
      <properties>
        <jdev.version>10.1.3</jdev.version>
      </properties>
    </project>
    

    然后,安装/部署此项目并将其声明为任何需要 ADF 工件的项目中的依赖项:

    <project>
      ...
      <dependencies>
        ...
        <dependency>
          <groupId>com.mycompany</groupId>
          <artifactId>adf-deps</artifactId>
          <version>1.0</version>
          <type>pom</type>
        </dependency>
      </dependencies>
    </project>
    

    【讨论】:

    • +1 用于推荐组合而不是继承。这实际上有两个方面的帮助,它允许轻松重用依赖集,并允许更轻松地升级到这些依赖集的新版本。
    【解决方案2】:

    如果子 POM 文件实际上是子文件(即声明其父文件),那么它将继承依赖项,您无需执行任何操作。

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2014-01-27
      • 2011-05-09
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多