我有一个有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中的jar命名?还是我走在正确的轨道上?
发布于 2012-12-11 23:23:43
来自http://maven.apache.org/pom.html
分类器:分类器允许区分从相同的POM构建但内容不同的工件。它是一些可选的任意字符串--如果存在的话--被附加到工件名称的版本号后面。
作为此元素的动机,例如,考虑一个项目,该项目提供了一个针对JRE 1.5的工件,但同时也提供了一个仍然支持JRE 1.4的工件。第一个工件可以配备分类器jdk15,第二个工件可以配备jdk14,以便客户可以选择使用哪一个。
后一段表明,他们打算使用分类器来执行您心目中的任务。
然而,根据我的经验,我遇到的大多数项目都会为项目的每个脉络发布单独的工件。我个人更喜欢这种方法,但这是一个品味问题。
发布于 2012-12-20 03:35:02
我认为使用相同的组和工件id和不同的分类器是最干净的方法。考虑一下源代码jars是如何由maven源代码插件发布的(它只是另一个分类器)。也来看看这个:
One Artifact for different configurations
https://stackoverflow.com/questions/13822407
复制相似问题