我有一个Java库,它自动部署到Maven central。现在这个库有Java-1.8目标SDK,我想继续发布这个目标的源代码,并添加带有Java模块支持的新的目标Java-17。源代码将与Java1.8版本兼容,因此这两个版本都将由单个源代码构建,但这些版本将具有不同的目标SDK (不同的字节代码)。
如何为Maven central正确命名这些工件,以说明它是一个源代码的不同目标?这方面是否存在一些最佳做法?现在,我正在为版本使用语义,所以我正在考虑类似于<major>-<minor>-<patch>+java8
和<major>-<minor>-<patch>+java17
,例如1.3.8+java8
。我想给一个有意义的名称,以明确用户使用的版本。
发布于 2021-09-20 12:46:23
根据SemVer规则,1.3.8+java8
和1.3.8+java17
版本必须作为同一版本进行比较。
这意味着,如果有人指定它们依赖于库的1.x.x或1.3.x版本,则可能发生两种情况,两者都不可取。
如果您正在生成针对不同Java版本的不同工件,我会将其编码为库名称中的后缀,这样您的用户就不得不指定他们想要的Java版本,而不必将库的确切版本固定在一起。这将导致工件<my_library>-java8
和<my_library>-java17
。
https://softwareengineering.stackexchange.com/questions/432052
复制相似问题