1

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

为此,我有 2 个分类器:

  • linux- x86
  • linux- x64

是否可以以这样一种方式定义依赖关系,即如果找不到 linux - x64工件,那么 Maven 会尝试找到 linux- x86

谢谢

4

1 回答 1

0

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

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

于 2012-04-11T11:51:12.027 回答