2012-12-11 40 views
4

我有一个库,有4个不同版本:32和64位窗口和32位和64位Linux。我试图找出每个库上传到Maven存储库的名称。现在我有:maven命名约定32与64位和Windows与Linux

<!--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罐子名称?还是我在正确的轨道上?

+0

我不知道这个领域的任何约定。我想,你应该只关心用户了解哪个库他必须使用的事实:) –

+0

谢谢!我认为对所有4个版本使用相同的groupId和artifactId可能更合适(因为它们实际上是相同的),并且有4个不同的分类器(x86-win,x86-64-win,x86-nix,x86- 64尼克斯)。想看看这两种方式是否有缺点。 –

+0

好吧,只有一个'groupId'和'artifactId'的想法也不错。 –

回答

2

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

分类: 分类器允许区分同一POM都建立了,但它们的内容不同的工件。它是一些可选的和任意的字符串,如果存在的话,会附加到版本号后面的工件名称。

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

后一段建议他们打算使用分类器来执行您想要的任务。

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

+0

您能否给我举一个“项目的每个静脉单独的工件?”的例子。我很好奇看看解决这个问题的流行方法是什么。 –

+0

第一个想到的是BouncyCastle,它为不同的Java版本生成变体:http://repo2.maven.org/maven2/org/bouncycastle/ –

+0

只是我寻找的例子:)谢谢! –