发布项目时可以在测试范围内拥有 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 已拥有
SpringBootSpringCloud版本中GA/PRE/SNAPSHOT的详解