对于 Jaybird(Firebird JDBC 驱动程序)的发布,我们还希望发布到 Maven 存储库。我现在正在考虑如何命名/版本化工件,因为每个受支持的 Java 版本都有不同的版本(对于即将推出的 Jaybird 2.2,它将是 Java 5/JDBC 3、Java 6/JDBC 4.0 和 Java 7/ 的版本) JDBC 4.1)。
我发现了三种不同的方式来命名 JVM 特定版本:
<artifactId>jaybird-jdk15</<artifactId>
)<version>2.2.0-jdk15</version>
)<classifier>jdk15</classifier>
)由于构建具有不同的源代码,因此可以将 JVM 变体视为实际上不同的工件(选项 1)。我已经看到 PostgreSQL JDBC 使用选项 2。选项 3(据我所知)的缺点是您无法包含版本特定的源代码和 javadoc。
我想知道我是否错过了针对 JVM 特定工件的完全不同的选项或 maven 功能,或者是否有对这些类型的工件进行版本控制的首选方法。
注意:Jaybird 构建过程本身不使用 Maven
由于两者的源代码不同,我会选择选项 1。它确实是一个不同的工件。
现在,如果您将所有源代码合并到一棵树中,并使用配置文件来构建不同的工件,我会选择选项 3。但前提是它更像是一个源代码库。