Развертывание артефактов maven для разных версий JVM - PullRequest
0 голосов
/ 04 марта 2012

Для выпуска Jaybird (драйвера JDBC Firebird) мы также хотим выпустить в репозиторий 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 имеет (AFAIK) обратную сторону, что вы не можете включать специфичные для версии источники и javadoc.

Я хотел бы знать, пропустил ли я совершенно другую опцию или maven-функцию для конкретных артефактов JVM, или есть ли предпочтительный метод для управления версиями этих типов артефактов.

ПРИМЕЧАНИЕ. Сам процесс сборки Jaybird не использует Maven

1 Ответ

1 голос
/ 04 марта 2012

Из-за того, что исходный код для обоих вариантов различен, я бы выбрал вариант 1. Это действительно другой артефакт.

Теперь, если вы объединили весь исходный код в одно дерево и использовали профили для создания различных артефактов, я бы выбрал вариант 3. Но только если он станет больше из одной базы исходного кода.

...