Я хочу добавить драйвер oracle jdbc в свой проект в качестве зависимости (область выполнения) - ojdbc14. На сайте MVNrepository зависимость, которую нужно поместить в POM, равна:
конечно, это не работает, поскольку его нет в центральном репозитории, используемом maven. 2 вопроса:
Как мне найти репозиторий (если он есть), содержащий этот артефакт?
Как мне добавить его, чтобы Maven мог его использовать?
Переведено автоматически
Ответ 1
Как мне найти репозиторий (если он есть), содержащий этот артефакт?
К сожалению, из-за бинарной лицензии нет общедоступного репозитория с JAR-файлом драйвера Oracle. Это происходит со многими зависимостями, но это не вина Maven. Если вам посчастливится найти общедоступный репозиторий, содержащий JAR, вы можете быть уверены, что это незаконно.
Как мне добавить его, чтобы Maven мог его использовать?
Некоторые JAR, которые не могут быть добавлены по причинам лицензии, имеют запись pom в Центральном репозитории Maven. Просто ознакомьтесь с ним, он содержит предпочитаемую поставщиком информацию о Maven:
После загрузки JAR просто добавьте его в репозиторий вашего компьютера с помощью (обратите внимание, что я извлек groupId, artifactId и version из POM):
Oracle теперь публикует драйверы под идентификатором группы com.oracle.database. Смотрите Ответ Энтони Акчиоли для получения дополнительной информации. Спасибо, Энтони.
По какой-то причине я не смог заставить работать ни одно из вышеупомянутых решений. (До сих пор не могу.)
Вместо этого я включил jar в свой проект (blech), а затем создал для него "системную" зависимость, которая указывает путь к jar. Возможно, это неправильный способ сделать это, но он работает. И это избавляет от необходимости другим разработчикам в команде (или тому, кто настраивает сервер сборки) помещать jar в свои локальные репозитории.
ОБНОВЛЕНИЕ: это решение работает у меня, когда я запускаю инструменты гибернации. Однако, похоже, оно НЕ работает для сборки файла WAR. Он не включает файл ojdbc6.jar в целевой файл WAR.
1) Создайте каталог с именем "lib" в корневом каталоге вашего проекта.
2) Скопируйте туда файл ojdbc6.jar (как бы ни назывался jar).
3) Создайте зависимость, которая выглядит примерно так:
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc</artifactId> <version>14</version> <scope>system</scope> <systemPath>${basedir}/lib/ojdbc6.jar</systemPath><!-- must match file name --> </dependency>
Некрасиво, но у меня работает.
Чтобы включить файлы в файл war, добавьте в свой pom следующее