在maven工件中编码体系结构的最佳实践?

时间:2013-10-22 17:22:20

标签: maven

放置平台/架构信息的最佳位置是什么?

我的诱惑是通过在架构指示符前加上版本来使用版本字段,因为这似乎是最简单的通配符,也可以防止意外混合和匹配不同的平台:

version = <architecture>-<version>[-<branch>]

或者,可以将架构附加到工件ID:

artifactId = <name>-<architecture>

两种方式都会导致相同的工件名称。

其他人做了什么,为什么?

1 个答案:

答案 0 :(得分:1)

如果您正在独立开发不同的架构,那么这些解决方案中的任何一个都可能是好的。但是,您可能会遇到这样的情况,即跨体系结构的版本号将是相同的。如果您正在为相同代码库之外的不同体系结构构建,例如,通常情况可能就是这种情况。要么你有一个构建在不同分布中的工件,要么你有不同的工件依赖于相同的共同核心。在这种情况下,您不希望使用体系结构或分支信息污染版本号,因为它使Maven无法将其视为相同版本。建议的解决方案是使用分类器。根据{{​​3}}:

  

<强>分类:   分类器允许区分伪像   从同一个POM构建但内容不同。这是一些   可选和任意字符串 - 如果存在 - 附加到   工件名称紧跟在版本号之后。

     

作为此元素的动机,请考虑一个项目   提供了一个针对JRE 1.5的工件,但同时也是一个   仍然支持JRE 1.4的工件。第一件神器可能是   配备分类器jdk15,第二个配jdk14   客户可以选择使用哪一个。