【问题标题】:How do i tell Maven to download all versions of a pom.xml instead of a single version?我如何告诉 Maven 下载 pom.xml 的所有版本而不是单个版本?
【发布时间】:2019-02-23 21:51:27
【问题描述】:

我有一个包含各种快照和许多版本的主 pom.xml。在构建 pom.xml 时,我们看到 m2/localrepo 中只下载了一个版本,而我们想要下载快照的所有版本。在运行 mvn clean install 时,我们收到警告,因为“dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique” 请检查以下 xml 中的 artifactId 'dtc-api-commons' 我有很多版本需要在我的本地 m2 存储库中下载。

**XML:**    
<dependency>
      <groupId>com.dtd</groupId>
      <artifactId>dtc-api-commons</artifactId>
      <version>3.3.2-SNAPSHOT</version>
</dependency>
<dependency>
      <groupId>com.dtd</groupId>
      <artifactId>dtc-api-commons</artifactId>
      <version>3.3.1_1-SNAPSHOT</version>
</dependency>
<dependency>
      <groupId>com.dtd</groupId>
      <artifactId>dtc-api-commons</artifactId>
      <version>3.3.1-SNAPSHOT</version>
</dependency>
<dependency>
      <groupId>com.dtd</groupId>
      <artifactId>dtc-api-commons</artifactId>
      <version>3.3.0-SNAPSHOT</version>
</dependency>

**COmmand:**    
mvn clean install
**Expected Output:**      
 3.3.0-SNAPSHOT 3.3.1.SNAPSHOT 3.3.1_1-SNAPSHOT 3.3.2-SNAPSHOT
**Actual Output**        
3.3.2-SNAPSHOT
Error:
[WARNING] Some problems were encountered while building the effective model for com.dtd:dummy-built:jar:0.0.0-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.dtd:dtc-api-commons:jar -> version 3.3.2-SNAPSHOT vs 3.3.1-SNAPSHOT @ line 15, column 13
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.dtd:dtc-api-commons:jar -> version 3.3.2-SNAPSHOT vs 3.3.0-SNAPSHOT @ line 15, column 13

请帮助使用正确的 maven 命令下载工件的所有版本。

【问题讨论】:

  • 和罗伯特有同样的问题:你为什么要这样做?
  • 基本上这些是我们的快照,而不是作为版本拍摄的,因此我们需要保护它以备将来使用。基本上是一种备份,有时可以从 Maven Central 中删除工件
  • 您误解了 Maven Central 的基本概念。在 Maven Central 中,您只有不可变且永远不会被删除的版本(极少数例外)。此外,如果您使用的是 SNAPSHOT 版本,则应改为使用发行版。这意味着生成发布并将它们存储到存储库管理器发布存储库中(当然还有备份),如果这些工件是您自己创建的,则永远不要依赖 SNAPSHOT。如果这些工件是由其他项目创建的,我建议等待通过 Central 发布它们……并始终使用存储库管理器。

标签: maven version pom.xml snapshot mvn-repo


【解决方案1】:

你不能,因为 Maven 有依赖解析的概念,其中最近的获胜。 可能最简单的解决方案是为每个版本编写一个调用 dependency:get 的 shell/批处理脚本。 但也许我应该问另一个重要的问题:

Why?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多