将maven依赖性降低到更一般的分类器

时间:2012-04-11 10:00:03

标签: maven dependency-management classification maven-dependency-plugin

Maven的设计主要是为了支持Java。但是,我想在maven存储库中存储一些与平台相关的工件。

我有2个分类器用于此目的:

  • 的linux的 86
  • 的linux的 64

是否可以通过以下方式定义依赖关系:如果找不到linux- x64 工件,那么Maven会尝试查找linux- x86

由于

1 个答案:

答案 0 :(得分:0)

我担心没办法这样做。事实上,真正反对Maven哲学是严格和直接的依赖。想象一下编译器应该对这种依赖声明做什么?应该使用linux-x86工件还是linux-x64工件进行编译?我假设这个模块的API / SPI是一样的,但只有你知道。编译器需要特定的类路径。并且很难说Maven中无法找到工件是什么意思,因为人们可以使用不同的存储库并在其本地存储库中使用不同的东西,因此构建不再可重复。由于构建不可重复性,Maven团队目前假设已弃用并建议不要使用版本范围,与您的想法相比,这真的是“软”的。

我的建议是始终释放这两个工件(linux-x86linux-x64),并使用这两个分类器释放依赖于它们的工件。这就是Maven的方式。