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

问题描述 投票:0回答:1

对于 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>

由于构建具有不同的源代码,因此可以将 JVM 变体视为实际上不同的工件(选项 1)。我已经看到 PostgreSQL JDBC 使用选项 2。选项 3(据我所知)的缺点是您无法包含版本特定的源代码和 javadoc。

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

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

maven versioning
1个回答
1
投票

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

现在,如果您将所有源代码合并到一棵树中,并使用配置文件来构建不同的工件,我会选择选项 3。但前提是它更像是一个源代码库。

© www.soinside.com 2019 - 2024. All rights reserved.