5

我有一个有 4 个不同版本的库:32 和 64 位 Windows 以及 32 和 64 位 linux。在将它们上传到 Maven 存储库时,我试图弄清楚每个库的名称。现在我有:

  <!--windows 32bit -->
  <groupId>com.lib-name.win</groupId>
  <artifactId>lib-name</artifactId>
  <classifier>x86<classifier>
  <version>10</version>

  <!--windows 64bit -->
  <groupId>com.lib-name.win</groupId>
  <artifactId>lib-name</artifactId>
  <classifier>x86-64<classifier>
  <version>10</version>

  <!--linux 32bit -->
  <groupId>com.lib-name.nix</groupId>
  <artifactId>lib-name</artifactId>
  <classifier>x86<classifier>
  <version>10</version>

  <!--linux 64bit -->
  <groupId>com.lib-name.nix</groupId>
  <artifactId>lib-name</artifactId>
  <classifier>x86-64<classifier>
  <version>10</version>

对于这种情况,是否有更标准的方式为 Maven 中的罐子命名?还是我走在正确的轨道上?

4

2 回答 2

3

http://maven.apache.org/pom.html

分类器: 分类器允许区分从相同 POM 构建但内容不同的工件。它是一些可选且任意的字符串——如果存在的话——被附加到工件名称之后,紧跟在版本号之后。

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

后一段表明他们希望分类器执行您想到的任务。

但是,根据我的经验,我遇到的大多数项目都会为项目的每个脉络发布单独的工件。我个人更喜欢这种方法,但这是一个品味问题。

于 2012-12-11T15:23:43.193 回答
0

我认为使用具有不同分类器的相同组和工件 id 是最干净的方法。想想 Maven 源插件(它只是另一个分类器)是如何发布源 jar 的。看看这个:

一个工件用于不同的配置

于 2012-12-19T19:35:01.823 回答