Я хочу добавить драйвер oracle jdbc в свой проект как зависимость (область выполнения) - ojdbc14. На сайте MVNrepository зависимость для размещения в POM:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
конечно, это не работает, поскольку это не в центральном хранилище, используемом Maven. 2 вопроса:
Как найти хранилище (если есть), содержащее этот артефакт?
Как мне добавить его, чтобы Maven использовал его?
Ответы:
Как найти хранилище (если есть), содержащее этот артефакт?
К сожалению, из-за бинарной лицензии нет общедоступного репозитория с Oracle Driver JAR. Это происходит со многими зависимостями, но это не вина Maven. Если вам случится найти общедоступный репозиторий, содержащий JAR, вы можете быть уверены, что это незаконно.
Как мне добавить его, чтобы Maven использовал его?
Некоторые JAR-файлы, которые не могут быть добавлены по лицензионным причинам, имеют запись pom в репозитории Maven Central . Просто проверьте, он содержит информацию о продавце, которую предпочитает Maven:
... и URL-адрес для загрузки файла, который в этом случае является http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .
После того, как вы загрузили JAR, просто добавьте его в репозиторий вашего компьютера с помощью (обратите внимание, что я извлек groupId, artifactId и version из POM):
Последний параметр для генерации POM избавит вас от предупреждений pom.xml
Если у вашей команды есть локальный репозиторий Maven, это руководство может быть полезным для загрузки JAR туда.
источник
По какой-то причине я не смог заставить работать ни одно из перечисленных выше решений. (Все еще не могу.)
Вместо этого я включил банку в свой проект (blech), а затем создал для нее «системную» зависимость, которая указывает путь к банке. Это, вероятно, не правильный способ сделать это, но это работает. И это устраняет необходимость для других разработчиков в команде (или парня, настраивающего сервер сборки) помещать банку в свои локальные репозитории.
ОБНОВЛЕНИЕ : Это решение работает для меня, когда я запускаю Hibernate Tools. Однако он НЕ работает для создания файла WAR. Он не включает файл ojdbc6.jar в целевой файл WAR.
1) Создайте каталог с именем «lib» в корне вашего проекта.
2) Скопируйте туда файл ojdbc6.jar (как бы он ни назывался).
3) Создайте зависимость, которая выглядит примерно так:
Некрасиво, но у меня работает.
Чтобы включить файлы в файл war, добавьте следующее в ваш pom
источник
Драйвер JDBC для Oracle теперь доступен в репозитории Oracle Maven (не в Central).
Репозиторий Oracle Maven требует регистрации пользователя. Инструкции можно найти в:
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Обновление 2019-10-03
Я заметил, что Spring Boot теперь использует драйвер Oracle JDBC от Maven Central .
Для пользователей Gradle используйте:
Нет необходимости в регистрации пользователя.
Обновление 2020-03-02
Oracle теперь публикует драйверы под идентификатором группы com.oracle.database. См. Ответ Энтони Аккиоли для получения дополнительной информации. Спасибо Энтони.
Драйвер Oracle JDBC, совместимый с JDK6, JDK7 и JDK8
Драйвер Oracle JDBC, совместимый с JDK8, JDK9 и JDK11
Драйвер Oracle JDBC, совместимый с JDK10 и JDK11
источник
Загрузите банку и поместите ее в свой проект
src/lib
. Теперь вы можете использовать установочный плагин maven.Теперь вам нужно выполнить
mvn clean
только один раз, и библиотека oracle lib установлена в вашем локальном хранилище maven.источник
Oracle теперь предоставляет хранилище maven на maven.oracle.com. Однако вам необходимо пройти аутентификацию.
Видеть Https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle
Согласно комментариям в блоге, драйвер ojdbc должен быть доступен в следующих координатах:
источник
Попробуйте с:
источник
1. Как мне найти хранилище (если есть), содержащее этот артефакт?
Поскольку DavidS прокомментировал строку, которую я цитировал в то время, когда я отвечал, больше не присутствует в текущем (на момент написания сейчас) соглашении с Лицензионным соглашением OTN, которое я связал. Рассматривайте этот ответ только для более старой версии артефакта, например 10.2.0.3.0 и тому подобного.
Все драйверы Oracle Database JDBC распространяются в соответствии с лицензионным соглашением OTN .
Если вы прочитали лицензионное соглашение OTN, вы найдете этот срок лицензии:
вот почему вы не можете найти флягу водителя в любом общедоступном репозитории Maven, потому что он будет распространяться один, и если это произойдет, это будет нарушением лицензии.
Добавление зависимости:
(или любая более поздняя версия) делает загрузки Maven
ojdbc14-10.2.0.3.0.pom
единственным, и в этом pom вы можете прочитать:которая информирует вас о лицензии OTN.
2. Как мне добавить его, чтобы Maven использовал его?
Для того , чтобы сделать выше зависимость работы я согласен с Виктором Гюго , которые предлагали вам здесь , чтобы вручную установить банку в локальный репозиторий Maven (
.m2
каталог), выполнив:но я хочу добавить, что срок действия лицензии выше не ограничивает только место, где вы не можете найти JDBC-jar, но также ограничивает место его установки!
Фактически ваш локальный репозиторий Maven должен быть закрытым, а не общим, потому что если бы он был общим, то это был бы своего рода дистрибутив, в котором jar распространяется сам по себе, даже если небольшая группа людей входит в вашу локальную сеть, и это представляет собой Нарушение лицензионного соглашения OTN .
Более того, я думаю, что вам следует избегать установки jar JDBC в менеджере хранилища вашей корпорации (например, Artifactory или Nexus ) как единый артефакт, потому что, если он был установлен, он все равно будет распространяться отдельно, даже если это будет происходить только для людей в вашей организации, и это представляет нарушение OTN Лицензионного соглашения .
источник
Вы можете использовать Nexus для управления сторонними зависимостями, а также зависимостями в стандартных репозиториях maven.
источник
До настоящего времени невозможно использовать репозитории maven. Я использую ivy в качестве инструмента управления зависимостями, но также использую репозитории maven2 ibiblio. И это работает для плюща:
Зависимость Maven2 может выглядеть примерно так:
Обратите внимание, что я определяю http://download.java.net/maven/2/ и http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [организация] / [модуль] / [ revision] / [artifact] - [revision]. [ext] как внешние репозитории maven2 в моих настройках плюща.
источник
http://maven.ibiblio.org/maven/oracle
ни того, ни другогоhttp://maven.ibiblio.org/maven/com.oracle
.На сегодняшний день (27 февраля 2020 года) Oracle объявила, что опубликовала все клиентские библиотеки JDBC с версии 11.2.0.4 (например, ojdbc6) до 19.3.0 (например, ojdbc10) в Maven Central под идентификатором группы com.oracle.database :
Пример:
источник
Драйверы JDBC для Oracle теперь доступны в Maven Central . Вот ссылка:
Драйверы Oracle JDBC - Maven Central
Статья разработчиков Oracle, объявляющая о доступности драйверов JDBC Oracle в Maven Central:
Oracle объявляет - драйверы Oracle JDBC доступны в Maven Central
Пример:
источник
Хорошие новости всем! Наконец, мы можем использовать официальный репозиторий Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
источник
Некоторые продукты Oracle поддерживают публикацию артефактов maven в локальном хранилище. Продукты имеют каталог плагинов / maven, который содержит описания, где найти эти артефакты и где их хранить. Существует плагин от Oracle, который фактически сделает загрузку.
Смотрите: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm
Одним из продуктов, которые могут поставлять OJDBC таким способом, является WLS, однако он использует довольно странные координаты:
источник
Я отправляю OpenSource под LGPLv2, и даже после нескольких разговоров с Oracle по электронной почте было неясно, разрешено ли мне отправлять их двоичный драйвер JDBC вместе с моим дистрибутивом. Вопрос касался того, была ли моя лицензия совместима с их условиями OTN, поэтому они предположили, что мне не разрешили отправить водителя. Предположительно связано с этой частью
Таким образом, даже если вам удастся легально опубликовать драйвер в вашем эксклюзивном / локальном репозитории maven, все равно есть ограничение на то, что вам разрешено делать с этим артефактом. Кажется абсурдным, что даже если я отправляю их драйвер в двоичном виде вместе с полным файлом лицензии OTN, я все равно не могу его использовать и должен заставить своих пользователей вручную загрузить драйвер Oracle и перейти на путь к моей библиотеке, прежде чем они смогут использовать мое программное обеспечение.
источник
Существует один репо, который обеспечивает банку. В SBT добавьте распознаватель, похожий на этот: «oracle driver repo» на « http://dist.codehaus.org/mule/dependencies/maven2 »
и зависимость: "оракул"% "ojdbc14"% "10.2.0.2"
Вы можете сделать то же самое с Maven. Доступны pom.xml и jar ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).
источник
Если вы используете Netbeans, перейдите в Зависимости и вручную установите артефакт. Найдите загруженный файл .jar и все готово. Чистая сборка решит любые проблемы.
источник
Вы можете найти простой пример проекта Github для использования драйвера JDBC Oracle в Maven Project здесь .
Вы можете найти все объяснения для вашей непрерывной интеграции + образец и работать на Travis-CI.
DEMO
источник
Для зависимости
Пытаться
источник
В моем случае это работает для меня после добавления этой зависимости от версии (10.2.0.4). После добавления этой версии 10.2.0.3.0 она не работает из-за отсутствия файла .jar в пути к хранилищу.
источник
Пожалуйста, попробуйте ниже:
источник
Это сработало для меня как шарм. Я прошел несколько путей, но потом это помогло мне. Убедитесь, что вы выполняете каждый шаг и называете файлы XML точно такими же .
https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
Процесс немного утомительный, но да, он работает.
источник
РЕШИТЬ
Этот репозиторий должен быть включен для поиска зависимостей Oracle 10.0.3.0 (этот параметр необходимо сделать в Buildconfig.groovy grails.project.dependency.resolver = "ivy" // или ivy
Также используйте следующие настройки для времени компиляции драйвера Oracle
время выполнения "com.oracle:ojdbc:10.2.0.3.0"
Это должно решить вашу проблему, так как вы не можете найти драйвер Oracle для приложения grails
источник