发布项目时可以在测试范围内拥有 SNAPSHOT 版本吗?

Posted

技术标签:

【中文标题】发布项目时可以在测试范围内拥有 SNAPSHOT 版本吗?【英文标题】:Is it OK to have a SNAPSHOT version in the test scope while releasing a project? 【发布时间】:2011-01-31 22:35:17 【问题描述】:

我正在尝试发布一个在测试范围内具有依赖关系的项目。 依赖项仍处于 SNAPSHOT 版本。当我尝试发布 maven 发布插件时,会抛出一个错误,提示必须将 SNAPSHOT 更改为发布版本。

任何想法,为什么在测试范围内会发生这种情况?

<dependency>
    <groupId>com.xxx.yyy.zzz.utils</groupId>
    <artifactId>benchmark</artifactId>
    <version>1.13-SNAPSHOT</version>
    <scope>test</scope>
</dependency>

错误:

[INFO] Can't release project due to non released dependencies :
    com.xxx.yyy.zzz.utils:benchmark:jar:1.13-SNAPSHOT:test
in project 'Some Core' (com.xxx.yyy.zzz.Some:Some-core:jar:1.13-SNAPSHOT)

【问题讨论】:

【参考方案1】:

这样好吗……

不是真的。

如果您这样做,则意味着您发布的测试可能不稳定;即,如果有人发布了您所依赖的错误版本的快照,它们可能会中断。想要为自己构建工件的下游人员可能会认为这是一件坏事。如果您需要在几个月内创建一个紧急补丁版本,这对您来说是一件坏事。

说服拥有您所依赖的工件的任何人为您创建发布版本......或者克隆它并自己做。

【讨论】:

测试包和依赖是否也成为发布的一部分?或者它只是成为源 jar 的一部分? 这取决于您所说的“版本的一部分”是什么意思。我想说的是,包含在源 JAR(和 VCS 标记)中意味着它版本的一部分。

以上是关于发布项目时可以在测试范围内拥有 SNAPSHOT 版本吗?的主要内容,如果未能解决你的问题,请参考以下文章

应用内结算测试:android.test.purchased 已拥有

我可以在全球范围内只安装 Gulp 吗?

Maven 发布插件:使用 SNAPSHOT 版本发布

SpringBootSpringCloud版本中GA/PRE/SNAPSHOT的详解

协程主体未涵盖在单元测试代码覆盖范围内 - Android Studio

计算一个坐标是不是在另一个坐标范围内