Java 在Maven中将日期用作版本的最佳实践
我们正在创建一个jar,用于获取ecu和故障代码的描述Java 在Maven中将日期用作版本的最佳实践,java,maven,Java,Maven,我们正在创建一个jar,用于获取ecu和故障代码的描述 DescriptionFinder finder = new DescriptionFinder(); String response = finder.findEcmDesc("43"); 描述是从一些工程师维护的大型属性文件中加载的。此属性文件每年更新3次 这是一个独立的jar,我们希望每年更新3次,并且认为一个版本的日期是个好主意 <artifactId>pfm-common-descriptions</art
DescriptionFinder finder = new DescriptionFinder();
String response = finder.findEcmDesc("43");
描述是从一些工程师维护的大型属性文件中加载的。此属性文件每年更新3次
这是一个独立的jar,我们希望每年更新3次,并且认为一个版本的日期是个好主意
<artifactId>pfm-common-descriptions</artifactId>
<version>2020.5.1</version>
<name>pfm-common-descriptions</name>
pfm通用描述
2020.5.1
pfm通用描述
我读到的几乎每一件事都说不使用日期是最好的做法,但我很确定这是一件好事。我们希望我们的用户升级到最新的jar。如果它太旧,这将是一个视觉提醒
以下是我的一些想法:
- 2020.5.1
- 2020.5.1_1(日期和版本以防万一)
- 2001年4月20日
<dependency>
<groupId>blah.blah.blah</groupId>
<artifactId>pfm-common-descriptions</artifactId>
<version>RELEASE</version> **(this has actually been deprecated!)**
</dependency>
废话,废话
pfm通用描述
发行版**(这实际上已被弃用!)**
但他们可能不会。约会仍然是年龄的一个重要指标。我们正在设置JFrog(我们的maven回购协议)何时发生变化的通知
想法?我应该在日期中添加一个版本吗?您使用什么格式?一般来说,最佳做法是对版本使用。但有些人不这样做 如果您遵循semver,那么最好跟踪已更改的内容,这样您的用户就可以知道新版本中添加了哪些新内容,并决定是否值得更新 从我的观点来看,在版本中约会并没有增加太多的意义 当出现新版本时是否添加通知?可以用semver完成 让他们知道他们的当前版本有多旧?每个jar都有这个元信息,用户可以打开CHANGELOG.md,查看当前版本发布后添加的内容
所以我看不出semver不适合这里的任何原因。一般来说,最佳实践是用于版本。但有些人不这样做 如果您遵循semver,那么最好跟踪已更改的内容,这样您的用户就可以知道新版本中添加了哪些新内容,并决定是否值得更新 从我的观点来看,在版本中约会并没有增加太多的意义 当出现新版本时是否添加通知?可以用semver完成 让他们知道他们的当前版本有多旧?每个jar都有这个元信息,用户可以打开CHANGELOG.md,查看当前版本发布后添加的内容
因此,我看不出semver不适合这里的任何原因。通常的做法是使用语义版本控制()-您需要记住的是,当一个版本投入生产时,并不是生成、测试/批准等的时候。那么使用哪个日期呢?此外,如果您每天有两个或更多构建,该怎么办?我们使用时间戳(以毫秒为单位)来确定哪个版本是哪个版本,但只有在semver(即5.4.3-timestamp.jar)指出,有些软件包的半固定发布日期(即每季度一次)在发布时使用此日期策略(即2020年第一季度的2020.1,其补丁仍然是2020.1.1)他们将此版本控制用于所有外部(营销)版本控制。在内部(对于构建系统),他们使用接近semver+加上唯一构建编号(即20.72539.15-323423)的东西,首先不鼓励使用
版本
,如前所述,它已被弃用,不应使用,因为它不可复制。此外,您当然可以使用2020.5.1
…我建议不要使用2020APR01
…如果您在2020.5.1
上进行更改,您应该有2020.5.2
或走一条路2020.5.1.0
,并且您可以使用最后的0
作为错误修复的指示器…等等。日期版本控制没有正确显示兼容性等。semver会这样做…使用semver并添加时间戳违反semver…如果您更改某些内容,例如5.4.3
,并对其进行更改5.4.4
。问题是:新函数比`5.5.0`修复5.4.4
破坏6.0.0
…常见实践是使用语义版本控制()——您需要记住的是,当一个版本投入生产时,并不是构建、测试/批准等的时候。那么使用哪个日期呢?此外,如果您每天有两个或更多构建,该怎么办?我们使用时间戳(以毫秒为单位)来确定哪个版本是哪个版本,但只有在semver(即5.4.3-timestamp.jar)指出,有些软件包的半固定发布日期(即每季度一次)在发布时使用此日期策略(即2020年第一季度的2020.1,其补丁仍然是2020.1.1)他们将此版本控制用于所有外部(营销)版本控制。在内部(对于构建系统),他们使用接近semver+加上唯一构建编号(即20.72539.15-323423)的东西,首先不鼓励使用版本
,如前所述,它已被弃用,不应使用,因为它不可复制。此外,您当然可以使用2020.5.1
…我建议不要使用2020APR01
…如果您在2020.5.1
上进行更改,您应该有2020.5.2
或走一条路2020.5.1.0
,并且您可以使用最后的0
作为错误修复的指示器…等等。日期版本控制无法正确显示兼容性等。semver会这样做…使用semver并添加时间戳违反semver…如果您更改某些内容,例如5.4.3
,并对其进行更改5.4.4
。问题是:新函数大于'5.5.0`错误修复5.4.4
中断6.0.0
…忘记了我的更改日志。谢谢忘了我的变更记录。谢谢