放置平台/架构信息的最佳位置是什么?
我的想法是通过在版本前面加上架构指示符来使用版本字段,因为这似乎是最简单的通配符,并且还可以防止意外混合和匹配不同平台:
version = <architecture>-<version>[-<branch>]
或者,可以将架构附加到工件 ID:
artifactId = <name>-<architecture>
两种方式都会导致相同的工件名称。
其他人做什么,为什么?
放置平台/架构信息的最佳位置是什么?
我的想法是通过在版本前面加上架构指示符来使用版本字段,因为这似乎是最简单的通配符,并且还可以防止意外混合和匹配不同平台:
version = <architecture>-<version>[-<branch>]
或者,可以将架构附加到工件 ID:
artifactId = <name>-<architecture>
两种方式都会导致相同的工件名称。
其他人做什么,为什么?
如果您正在独立开发不同的架构,那么这些解决方案中的任何一个都可能是好的。但是,您可能会遇到不同架构的版本号相同的情况。如果您正在使用相同的代码库为不同的体系结构构建,这通常是这种情况,例如,您有一个构建到不同可分发文件中的工件,或者您有依赖于相同公共核心的不同工件。在这种情况下,您不希望使用架构或分支信息污染版本号,因为这会使 Maven 无法将其视为同一版本。建议的解决方案是使用分类器。根据Maven POM 参考:
分类器:分类器允许区分从相同 POM 构建但内容不同的工件。它是一些可选且任意的字符串——如果存在的话——被附加到工件名称之后,紧跟在版本号之后。
作为这个元素的动机,考虑一个项目,它提供了一个针对 JRE 1.5 的工件,但同时也提供了一个仍然支持 JRE 1.4 的工件。第一个工件可以配备分类器
jdk15
,第二个工件可以配备分类器,jdk14
以便客户可以选择使用哪一个。