Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Maven中将日期用作版本的最佳实践_Java_Maven - Fatal编程技术网

Java 在Maven中将日期用作版本的最佳实践

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

我们正在创建一个jar,用于获取ecu和故障代码的描述

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日
我猜我们的客户可以使用RELEASE关键字:

<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
…忘记了我的更改日志。谢谢忘了我的变更记录。谢谢