Oracle JDBC ojdbc6 Jar как зависимость Maven

74

Я не могу заставить Maven объединить файл ojdbc6.jar в файл войны проекта. Я работаю в файле POM при указании зависимости непосредственно для инструментов Hibernate. Но он не будет связан с файлом войны проекта, поэтому мой проект не будет работать на Tomcat.

Я пробовал каждое решение, которое я могу найти там в сети, включая те, которые указаны для этого вопроса здесь:

Найти драйвер Oracle JDBC в репозитории Maven

Совсем недавно я сделал следующее:

  • Загрузите файл jar на свой компьютер

  • Выполните следующую команду, чтобы установить банку в мой локальный репозиторий:

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

    (Я тоже пробовал все варианты этой команды.)

  • Наконец, я включил зависимость в мой файл pom:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
    
  • Я запускаю чистую сборку, но она терпит неудачу:

    mvn -U clean package
    
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building jazztwo 0.0.1
    [INFO] ------------------------------------------------------------------------
    Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.700s
    [INFO] Finished at: Tue Mar 27 15:06:14 PDT 2012
    [INFO] Final Memory: 3M/81M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project jazztwo: Could not resolve dependencies for project edu.berkeley:jazztwo:war:0.0.1: Could not find artifact com.oracle:ojdbc6:jar:11.2.0.3 in central (http://repo1.maven.org/maven2) -> [Help 1]
    

Почему это не работает? Я готов бросить дорогие компьютерные части по всей комнате. Это потратило так много времени. (Спасибо, Oracle. Сколько мы заплатили вам снова?)

Это потому, что я нахожусь на Mac, возможно?

  • 6
    Можете ли вы проверить, доступен ли файл ojdbc6-11.2.0.3.jar в вашем локальном хранилище в правильной папке?
  • 1
    JAR-файл никогда не копируется в репозиторий. Просто куча файлов, которые появляются, чтобы ссылаться на него. Должен ли файл называться именно так? Это просто ojdbc6.jar в моей директории lib.
Показать ещё 7 комментариев
Теги:
maven
jdbc
war

9 ответов

19
Лучший ответ

Правильный ответ был предоставлен Рагхурамом в разделе комментариев к моему первоначальному вопросу.

По какой-то причине указание "mvn install" на полный путь физического файла ojdbc6.jar не сработало для меня. (Или я последовательно неоднократно удалял его при запуске команды, но ошибок не было.)

cd-ing в каталог, где я сохраняю ojdb6.jar и запускаю команду оттуда, работал в первый раз.

Если Рагхурам хотел бы ответить на этот вопрос, я скорее приму его ответ. Спасибо всем!

  • 1
    Спасибо @Raghuram и Марво
116

Лучше добавить новый репозиторий Maven в свой проект вместо его установки в локальный репозиторий.

Синтаксис Maven:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
... 
<repositories>
    <repository>
      <id>codelds</id>
      <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
  </repositories>

Пример Grails:

mavenRepo "https://code.lds.org/nexus/content/groups/main-repo"
build 'com.oracle:ojdbc6:11.2.0.3'
  • 3
    В конечном итоге это то, что мы сделали. Мы создали репозиторий здесь, и все наши проекты теперь используют его. Я думаю, что полезно знать, как сделать и то и другое.
  • 3
    Это хранилище lds.org законно? Согласно этому ответу это незаконно: stackoverflow.com/a/1074971/1415732
Показать ещё 7 комментариев
25

Для тех, кто читает этот пост в будущем, вам не нужно записывать CD в каталог, в котором присутствует банка. Вот что вам нужно сделать -

Перейдите в папку проекта, откуда вы можете запускать команды maven (Когда вы делаете ls -ltr в этой папке, вы должны увидеть pom.xml)

Сделайте это -

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=<Path where the jar is, example downloads>/ojdbc6.jar -DgeneratePom=true

Как только это будет сделано, вы можете добавить зависимость в свой pom.xml, что-то вроде этого -

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
  • 3
    Просто примечание: после выполнения этих шагов у меня все еще была та же ошибка в затмении, пока я не выполнил Maven > Update Project . Тогда все работало прекрасно. Этот шаг может быть очевидным, но я решил добавить его.
  • 2
    ... чтобы добавить к "привет будущему сообщению читателя". Это не удалось запустить PowerShell, но, как и ожидалось, работало с использованием обычной CMD-оболочки Windows. Нет силовой оболочки для вас!
Показать ещё 2 комментария
5

E:\WORK\EclipseL_Work\ro>mvn install:install-file -Dfile=C:\Users\xxxx\Downloa ds\lib\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

для решения проблемы ORACLE JAR с помощью приложения Spring,

Oracle JDBC ojdbc6 Jar как зависимость Maven

<код > < зависимость >           < идентификатор_группа > com.oracle </идентификатор_группа >           < артефакт > ojdbc6 </артефакт >           < & версии GT; 11.2.0 </& версии GT;       </зависимость > код >

  • 0
    Maven очень требователен к версиям, которые не всегда легко угадать. Приятно ловить, что версия 11.2.0, а не 11.2.0.3
2

Ниже конфигурация работала для меня. Подробнее см. Ссылку .

<dependency>
 <groupId>com.oracle.jdbc</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.0.2</version>
</dependency>
  • 0
    Это ново, так как я задал вопрос. Ницца!
2

Сначала вам нужно загрузить конкретную банку с сайта Oracle (ojdbc.jar version 11.2.0.3)

если вы загрузите его в папку C:\filefolder

перейдите в этот каталог в командной строке cmd и укажите следующую команду. Он установит зависимость. Затем вы можете создать свой проект.

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

Я выполнил следующую команду:

mvn install:install-file -Dfile=E:\JAVA\Spring\ojdbc14-10.2.0.4.0.jar\ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar

После установки проверьте, что jar установлен правильно на вашем M2_repo.

1

После выполнения

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

проверьте папку репозитория .m2 (/com/oracle/ojdbc6/11.2.0.3), чтобы узнать, существует ли ojdbc6.jar. Если не проверить настройки вашего репозитория maven в разделе $M2_HOME/conf/settings.xml

0

Добавить следующую зависимость в pom.xml

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>oracle</artifactId>
    <version>10.2.0.2.0</version>
</dependency>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню