2012-03-04 42 views
1

對於Jaybird(Firebird JDBC驅動程序)的發佈,我們也想發佈到Maven存儲庫。我正在考慮如何命名/版本工件,因爲每個受支持的Java版本都有不同的版本(對於即將推出的Jaybird 2.2,它將成爲Java 5/JDBC 3,Java 6/JDBC 4.0和Java 7/JDBC 4.1)。爲不同的JVM版本部署Maven構件

我發現命名JVM特定版本的三種不同的方式:在版本

  1. JVM版本在工件(如<artifactId>jaybird-jdk15</<artifactId>
  2. JVM版本(例如<version>2.2.0-jdk15</version>
  3. 使用分類(例如<classifier>jdk15</classifier>

由於構建版本具有不同的源代碼,因此可以認爲JVM變體實際上是不同的t工件(選項1)。我已經看到PostgreSQL JDBC使用選項2.選項3具有(AFAIK)的缺點是不能包含特定於版本的源和javadoc。

我想知道如果我錯過了JVM特定的文物完全不同的選項或Maven的功能,或者如果有版本控制這些類型文物的首選方法。

注:Jaybird構建過程本身並沒有使用 Maven的

+1

只是另一個數據點,oracle使用選項1,其工件名爲ojdbc14,ojdbc5或ojdbc6。我認爲分類器是正確的方法,但是您提到了關於附加源和javadoc工件的非常好的一點。 – 2012-03-04 14:45:44

+0

[testng](http://repo1.maven.org/maven2/org/testng/testng/5.10/)在版本'5.11'之前爲'jdk14'和'jdk15'使用了'Option 3'。它還部署了'source'和'javadoc',但不知道它們是否都是通用的。 – Raghuram 2012-03-04 17:30:17

回答

1

由於事實的源代碼是兩個不同的,我會去瓦特/選項1,這真的是一個不同的神器。

現在,如果你結合所有的源成一棵樹,並用曲線來構建不同的文物,我會去瓦特/選項3,但只有當它變得更加的一個源代碼庫。

+0

構建本身不使用Maven,並且JVM版本之間的差異編碼和結構化的方式並不容易獲得單個代碼庫。 – 2012-03-05 19:16:23

+0

如何構建和生成工件(使用maven或不)非常重要。使用maven的其他項目的這些工件的可用性使差異變得重要。 – Michael 2012-03-05 19:22:08