2012-03-27 5 views
75

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

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

Find Oracle JDBC driver in Maven repository

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

  1. Загрузите файл jar на мою машину

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

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

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

  3. Наконец, я поставил зависимость в моем п файл:

    <dependency> 
        <groupId>com.oracle</groupId> 
        <artifactId>ojdbc6</artifactId> 
        <version>11.2.0.3</version> 
    </dependency> 
    
  4. Я бегу чистая сборка, но она не:

    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' доступен в локальном хранилище в правильную папку? – Raghuram

+1

Файл jar никогда не копируется в репозиторий. Просто куча файлов, которые, как представляется, ссылаются на нее. Должен ли этот файл быть вызван именно так? Это просто ojdbc6.jar в моем каталоге lib. – Marvo

+15

Хм! поэтому 'mvn install: install-file' не работает. Вы должны дать абсолютное расположение 'ojdbc6.jar' или запустить команду из папки, которая ее содержит. Имя файла не является проблемой. Вы можете запускать флаг '-X', чтобы вы могли отлаживать информацию. – Raghuram

ответ

21

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

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

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

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

+1

Спасибо @Raghuram и Marvo – spiderman

112

Лучше добавить новый репозиторий 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

В конечном счете это то, что мы сделали. Здесь мы создали репозиторий, и теперь все наши проекты используют его. Я думаю, что полезно знать, как делать оба. – Marvo

+2

Является ли этот репозиторий lds.org законным? В соответствии с этим ответом это незаконно: http://stackoverflow.com/a/1074971/1415732 – Alden

+2

Интересно, если бы я установил зависимость от моего репозитория моей компании, было бы и незаконным? Или только публичные РЕПО являются незаконными? Это вина Oracle, что у них нет публичного репозитория Maven для своих библиотек. Я бы предпочел, чтобы кто-то делил эту библиотеку в своем репозитории (и он постоянно доступен). –

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 /.XML

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 

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

29

Для всех, кто читает это сообщение в будущем, вам не нужно записывать 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

Просто примечание. После выполнения этих шагов у меня все еще была та же ошибка в eclipse, пока я не выполнил «Maven> Update Project». Тогда все сработало красиво. Этот шаг может быть очевиден, но я решил, что добавлю его. – mb595x

+2

... добавить в «привет пост будущего читателя». это не удалось запустить powershell, но работал, как ожидалось, запуск обычных окон CMD-оболочки. Никакой powershell для вас! – phareim

+0

для людей, пытающихся сделать это на окнах, совет phareim - это золото. Я получил эту работу в Windows 7, запускающей maven 3.3.3, введя команду mvn в командной строке. powershell продолжал бросать ошибку «pom not found». –

2

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

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

перейти в этот каталог в CMD строке и обеспечить ниже command.It будет установить dependency.Then вы можете создать свой проект.

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.4.0 -Dfile=ojdbc6.jar -DgeneratePom=true 
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

разрешить JAR проблемы ORACLE с Spring Application,

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

<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0</version> </dependency>

+0

Maven очень разборчив о версиях, которые не всегда легко угадать. Приятно поймать, что версия 11.2.0 не 11.2.0.3 –

2

Ниже конфиг работал для меня. Обратитесь к этому link за более подробной информацией.

<dependency> 
<groupId>com.oracle.jdbc</groupId> 
<artifactId>ojdbc7</artifactId> 
<version>12.1.0.2</version> 
</dependency> 
+0

Это новое, так как я задал вопрос. Ницца! – Marvo

0

Добавить После зависимости в pom.xml

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>oracle</artifactId> 
    <version>10.2.0.2.0</version> 
</dependency> 
Смежные вопросы