【发布时间】: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