распространение плагина maven с зависимостью ojdbc

Я хотел бы распространять свой плагин maven в хостинге репозитория программного обеспечения с открытым исходным кодом Sonatype (OSSRH).

Моя проблема в том, что плагин использует Oracle ojdbc6.jar. Я знаю, что нельзя распространять драйвер в одиночку, каждый должен сам скачать и установить плагин.

Какова наилучшая практика, общий подход к публикации плагина maven с ojdbc или другой проприетарной зависимостью?

Должен ли я просто предоставить

mvn install:install-file -DgroupId=com.oracle -DartifactId=oracle-jdbc -Dversion=11.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true

команда в документации? (Например, см.: https://github.com/jclagache/ojdbc-weave/blob/master/README.md#install-oracle-dependencies)

(Может быть, я могу использовать драйвер jdbc с открытым исходным кодом для базы данных Oracle, если он есть, я просто запускаю выбор [я не нашел])


person karsany    schedule 12.01.2015    source источник


Ответы (1)


Ваша лицензия Oracle может позволить вам распространять ojdbc с вашим плагином maven:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#02_12

Могут ли сторонние поставщики распространять драйверы Oracle JDBC вместе со своим собственным программным обеспечением?

Если вы являетесь сторонней компанией-разработчиком программного обеспечения (и партнером Oracle), ознакомьтесь с условиями лицензирования Oracle, изложенными в Лицензионном соглашении Oracle. За более подробной информацией обращайтесь к местному торговому представителю Oracle.

Поскольку нет общедоступного репозитория Maven, в котором вы могли бы ссылаться на ojdbc jar в качестве зависимости, чтобы связать его в своем плагине, вы можете использовать JAR в методе JAR.

В противном случае, если вы действительно хотите, чтобы ваш пользователь вручную установил драйвер, было бы неплохо выполнить проверку существования драйвера оракула во время выполнения и напечатать хорошую ошибку с инструкцией по его установке, если он не существует. Вы можете проверить, используя метод Class.forName() (он выдаст ClassNotFoundException, если не будет найден)

person gerrytan    schedule 13.01.2015