为不同的JVM版本部署maven工件

时间:2012-03-04 14:35:21

标签: maven versioning

对于Jaybird(Firebird JDBC驱动程序)的发布,我们还想发布到Maven存储库。我现在正在考虑如何命名/版本工件,因为每个支持的Java版本都有不同的版本(对于即将推出的Jaybird 2.2,它将是Java 5 / JDBC 3,Java 6 / JDBC 4.0和Java 7 /的版本JDBC 4.1)。

我找到了三种不同的命名JVM特定版本的方法:

  1. 工件中的JVM版本(例如<artifactId>jaybird-jdk15</<artifactId>
  2. 版本中的JVM版本(例如<version>2.2.0-jdk15</version>
  3. 使用分类器(例如<classifier>jdk15</classifier>
  4. 由于构建具有不同的源代码,因此可以认为JVM变体实际上是不同的工件(选项1)。我已经看到PostgreSQL JDBC使用选项2.选项3(AFAIK)的缺点是你不能包含特定于版本的源和javadoc。

    我想知道我是否错过了针对JVM特定工件的完全不同的选项或maven功能,或者是否有一种首选方法来对这些类型的工件进行版本控制。

    注意:Jaybird构建过程本身使用Maven

1 个答案:

答案 0 :(得分:1)

由于两者的源代码不同,我会选择1.它实际上是一个不同的工件。

现在,如果您将所有源组合到一个树中,并使用配置文件来构建不同的工件,那么我会选择3。但只有当它变得更像一个源代码库时。