gpt4 book ai didi

Maven:为什么 Artifact 文件名中缺少-SNAPSHOT后缀?

转载 作者:行者123 更新时间:2023-12-04 05:04:10 25 4
gpt4 key购买 nike

我的Maven Artifact 已部署到Nexus快照存储库。在那里,它存储在正确的目录中,但是其文件名具有以下模式:

mylibrary-1.0-20130213.125827-2.jar

但是,Maven无法下载该快照。根据错误日志,Maven似乎期望使用以下文件名:
mylibrary-1.0-SNAPSHOT.jar

这些是我pom中的存储库设置:

<repositories>
<repository>
<id>mycompany-all</id>
<url>https://servername/nexus/content/groups/mycompany/</url>
</repository>
</repositories>

<distributionManagement>
<repository>
<id>mycompany-releases</id>
<url>https://servername/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>mycompany-snapshots</id>
<url>https://servername/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

注意:关联组包括 releasessnapshots存储库。

我没有在 settings.xml中配置这些存储库-这是问题吗?还是我做错了什么?

最佳答案

您发布的模式(mylibrary-1.0-20130213.125827-2.jar)是唯一的快照版本。 Maven 3强制您使用这种 Artifact 命名,但是在Maven 2中,可以通过以下语句来防止这种情况:

<distributionManagement>
...
<snapshotRepository>
...
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
...
</distributionManagement>

要在项目中使用特定的快照,请将其声明为:

<dependency>
<groupId>com.foo</groupId>
<artifactId>mylibrary</artifactId>
<version>1.0-20130213.125827-2</version>
</dependency>

要使用最新的已知快照,请将其声明为“旧样式”:

<dependency>
<groupId>com.foo</groupId>
<artifactId>mylibrary</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

您也可能会发现此 similar question的答案也很有帮助。

关于Maven:为什么 Artifact 文件名中缺少-SNAPSHOT后缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14869962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com