【问题标题】:Maven - Multiple artifact versions in dependency managementMaven - 依赖管理中的多个工件版本
【发布时间】:2013-09-03 08:07:32
【问题描述】:

在您的 POM 的依赖管理部分中是否存在同一工件的两个不同版本的有效用例?

我正在查看一个根 POM 包含此类示例的项目。项目本身有多个模块使用这种“重复依赖”的不同版本。因此,一些模块必须在其依赖项中明确指定工件的版本,以便区分两者。

如果模块的POM文件无论如何都必须指定版本,那么在父依赖管理中出现重复的原因是什么?即使从依赖项管理中删除了依赖项,它也会被正确查找,那么你为什么要在第一时间复制它呢?

我只是想弄清楚这是否是一种好的做法,或者对于这种情况是否有更好的解决方案。

【问题讨论】:

    标签: maven maven-3 maven-dependency-plugin


    【解决方案1】:

    实际上,如果您使用的是 Maven3+,您会收到如下警告:

    [WARNING]
    [WARNING] Some problems were encountered while building the effective model for groupId:artifactId:jar:1.0-SNAPSHOT
    [WARNING] 'dependencyManagement.dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: junit:junit:jar -> version 3.8.1 vs 3.0 @ line 15, column 18
    [WARNING]
    [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
    [WARNING]
    [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
    [WARNING]
    

    Maven 会选择第一个,因此永远不会使用第二个。只需将其删除以防止更多混乱:)

    【讨论】:

      【解决方案2】:

      尝试欺骗 maven。在每组的末尾键入点。它对我有用。

      <dependency>
              <groupId>my.group</groupId>
              <artifactId>myartifact</artifactId>
              <version>1</version>
      </dependency>
      <dependency>
              <groupId>my.group.</groupId>
              <artifactId>myartifact</artifactId>
              <version>2</version>
      </dependency>
      <dependency>
              <groupId>my.group..</groupId>
              <artifactId>myartifact</artifactId>
              <version>3</version>
      </dependency>
      

      =)

      【讨论】:

        猜你喜欢
        • 2015-10-13
        • 2021-07-11
        • 2015-10-17
        • 1970-01-01
        • 2015-04-03
        • 2012-06-30
        • 2019-04-12
        • 2016-09-18
        相关资源
        最近更新 更多