ओरेकल JDBC ojdbc6 जार एक मावेन निर्भरता के रूप में


103

मैं अपने प्रोजेक्ट की युद्ध फ़ाइल में ojdbc6.jar फ़ाइल को बंडल करने के लिए मावेन प्राप्त करने के लिए प्रतीत नहीं कर सकता। मेरे पास यह POM फ़ाइल के भीतर काम कर रहा है जब सीधे हाइबरनेट टूल के लिए निर्भरता निर्दिष्ट करता है। लेकिन यह परियोजना की युद्ध फाइल के साथ बंडल नहीं किया जाएगा, और इसलिए मेरा प्रोजेक्ट टॉमकैट पर नहीं चलेगा।

मैंने हर समाधान की कोशिश की है जिसे मैं नेट पर पता लगा सकता हूं, इस प्रश्न के लिए यहां निर्दिष्ट लोगों सहित:

Maven रिपॉजिटरी में Oracle JDBC ड्राइवर खोजें

हाल ही में, मैंने निम्नलिखित कार्य किया:

  1. मेरी मशीन पर जार फ़ाइल डाउनलोड करें

  2. मेरे स्थानीय भंडार में जार स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

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

    (मैंने उस कमांड के सभी प्रकारों को भी आज़माया है।)

  3. अंत में, मैंने अपने pom फ़ाइल में निर्भरता को रखा:

    <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]

यह काम क्यों नहीं करता है? मैं कमरे में महंगे कंप्यूटर पार्ट्स फेंकने के लिए तैयार हूं। इसने इतना समय बर्बाद किया है। (धन्यवाद, ओरेकल। हमने आपको फिर से कितना भुगतान किया?)

यह है क्योंकि मैं एक पर हूँ MAC, शायद?


6
क्या आप जांच सकते हैं कि फ़ाइल ojdbc6-11.2.0.3.jarआपके स्थानीय रिपॉजिटरी में सही फ़ोल्डर में उपलब्ध है या नहीं?
रघुराम

1
जार फ़ाइल कभी भी रिपॉजिटरी में कॉपी नहीं होती है। फाइलों का एक गुच्छा जो इसे संदर्भित करता है। क्या फ़ाइल को वास्तव में कहा जाना चाहिए? यह सिर्फ मेरी लिबास डायरेक्टरी में ojdbc6.jar है।
मार्वो

15
हम्म! तो mvn install:install-fileकाम नहीं किया है। आपको ojdbc6.jarउस फ़ोल्डर से कमांड को पूर्ण स्थान देना चाहिए या उसे चलाना चाहिए । फ़ाइल का नाम कोई समस्या नहीं है। आप एक -Xध्वज के साथ भाग सकते हैं ताकि आप जानकारी को डीबग कर सकें।
रघुराम

जब आप चलाते हैं तो क्या कोई आउटपुट है install-file? मावेन को आपको यह बताना चाहिए कि यह फ़ाइल को कहाँ स्थापित करता है या कोई त्रुटि थी।
nwinkler

1
एक असंबंधित नोट के रूप में: आपको एक रिपॉजिटरी मिरर (नेक्सस, आर्टिफ़ैक्ट, आर्चीवा, ...) जैसी चीज़ का उपयोग करना चाहिए। आप फ़ाइल को वहां अपलोड कर सकते हैं और यह न केवल आपके लिए उपलब्ध होगा, बल्कि बाकी सभी के लिए भी एक ही दर्पण का उपयोग किया जाएगा।
nwinkler

जवाबों:


136

अपने स्थानीय रिपॉजिटरी में इसे स्थापित करने के बजाय अपनी परियोजना में नए मावेन रिपॉजिटरी (अधिमानतः अपने स्वयं के आर्टिफैक्ट का उपयोग करके) को जोड़ना बेहतर है।

मावेन वाक्य रचना:

<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>

दाने का उदाहरण:

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
Alden

2
मुझे आश्चर्य है, अगर मैं अपनी कंपनी के भंडार पर निर्भरता स्थापित करूंगा, तो क्या यह भी अवैध होगा? या केवल सार्वजनिक रिपॉजिट अवैध हैं? यह ओरेकल की गलती है कि उनके पास अपने पुस्तकालयों के लिए सार्वजनिक मावेन भंडार नहीं है। मैं इसके बजाय किसी की सराहना करना चाहता हूं कि पुस्तकालय उनके भंडार में साझा कर रहा है (और यह लगातार उपलब्ध है)।
ओन्ड्रेज क्वासनोव्स्की

3
ओन्ड्रेज: मेरी समझ में यह केवल अवैध है अगर रिपॉजिटरी सार्वजनिक है। मेरी कंपनी एक निजी मावेन रेपो (आर्टिफैक्टिक) में ओजडबेक को आपके द्वारा सुझाए गए तरीके से होस्ट करती है।
रे मायर्स

3
बेशक यह "बेहतर" है, अपनी परियोजना में कुछ मनमाना रेपो जोड़ने के लिए, हाँ। वाह, यह इतने स्तरों पर गलत है
zb226

41

भविष्य में इस पोस्ट को पढ़ने वाले किसी के लिए, आपको उस निर्देशिका को सीडी की आवश्यकता नहीं है जहां जार मौजूद है। यहाँ है आपको क्या करने की जरूरत है -

अपने प्रोजेक्ट फ़ोल्डर पर जाएं जहां से आप मावेन कमांड चला सकते हैं (जब आप इस फ़ोल्डर में ls -Exr करते हैं, तो आपको 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। फिर सब कुछ खूबसूरती से काम किया। यह कदम स्पष्ट हो सकता है, लेकिन मुझे लगा कि मैं इसे जोड़ूंगा।
user12893298320392

2
... "हेलो फ्यूचर रीडर पोस्ट" में जोड़ने के लिए। यह चल रही शक्तियां विफल रही, लेकिन साधारण विंडो CMD- शेल को चलाने के लिए अपेक्षित रूप से काम किया। आपके लिए कोई शक्तियां नहीं!
फेरीम

खिड़कियों पर ऐसा करने की कोशिश कर रहे लोगों के लिए, फरेम की सलाह सोने की है। मैं कमांड प्रॉम्प्ट में mvan कमांड टाइप करके विंडोज 7 रनिंग मावेन 3.3.3 पर यह काम कर रहा हूं। शक्तियां 'पोम नहीं मिला' त्रुटि फेंकती रहीं।
क्वेस्ट मोंगर

उल्लिखित आदेश महत्वपूर्ण है। मैंने पहले निर्भरता को जोड़ा था तब mvan intsall कमांड चला रहा था, त्रुटि गायब नहीं हुई। निर्भरता को हटाने की कोशिश की, सहेजें और फिर इसे वापस जोड़ें और सहेजें। सभी त्रुटियों को हल किया गया (बशर्ते आपकी परियोजना टी "बिल्ड स्वचालित रूप से" सेट हो)
कैलास

24

सही उत्तर रघुराम ने मेरे मूल प्रश्न पर टिप्पणी अनुभाग में दिए।

जो भी कारण के लिए, भौतिक ojdbc6.jar फ़ाइल के पूर्ण पथ पर "mvan इंस्टॉल" इंगित करना मेरे लिए काम नहीं करता था। (या मैं कमांड को चलाते समय लगातार इसे बार-बार दबाता हूं, लेकिन कोई त्रुटि जारी नहीं की गई।)

निर्देशिका में cd-ing जहां मैं ojdb6.jar रखता हूं और वहां से कमांड चलाकर पहली बार काम करता हूं।

अगर रघुराम इस सवाल का जवाब देना चाहते हैं, तो मैं उनके जवाब को स्वीकार करूंगा। सबको धन्यवाद!


1
धन्यवाद @ रघुराम और मार्वो
स्पाइडरमैन

7
mvn install:install-file 
-Dfile=C:\Users\xxxx\Downloads\lib\ojdbc6.jar 
-DgroupId=com.oracle
-DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

वसंत आवेदन के साथ ओरल जार मुद्दे को हल करने के लिए,

ओरेकल JDBC ojdbc6 जार एक मावेन निर्भरता के रूप में

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

मावेन उन संस्करणों के बारे में सुपर पिकी है जो हमेशा अनुमान लगाने में आसान नहीं होते हैं। अच्छा पकड़ है कि संस्करण 11.2.0 नहीं 11.2.0.3 है
माइकल

5

सबसे पहले आपको Oracle साइट (ojdbc.jar संस्करण 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

2

अमल करने के बाद

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

ojdbc6.jar मौजूद है या नहीं यह देखने के लिए अपने .m2 रिपॉजिटरी फ़ोल्डर (/com/oracle/ojdbc6/11.2.0.3) की जाँच करें। यदि $ M2_HOME / conf / settings.xml के तहत अपनी मावेन रिपॉजिटरी सेटिंग्स की जाँच न करें


2

नीचे विन्यास मेरे लिए काम किया। अधिक जानकारी के लिए इस लिंक को देखें।

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

सवाल पूछने के बाद से मैं नया हूं। अच्छा!
मार्वो

2

चूंकि ओरेकल लाइसेंस प्राप्त उत्पाद है, इसलिए सीधे मावेन निर्भरता को जोड़ने में समस्या है। Ojdbc.jar के किसी भी संस्करण को जोड़ने के लिए, नीचे 2 चरण कर सकते हैं।

  1. स्थानीय मावेन भंडार में ojdbc.jar को स्थापित करने के लिए नीचे दिया गया कमांड चलाएँ।
/opt/apache-maven/bin/mvn install:install-file
    -Dfile=<path-to-file>/ojdbc7.jar
    -DgroupId=com.oracle
    -DartifactId=ojdbc7
    -Dversion=12.1.0.1.0
    -Dpackaging=jar

इससे स्थानीय भंडार में निर्भरता बढ़ जाएगी।

  1. अब, pom फ़ाइल में निर्भरता जोड़ें
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1.0</version>
</dependency>

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 पर सही ढंग से स्थापित है।


1

मैंने संस्करण टैग के बिना निर्भरता का उपयोग करने की कोशिश की है और इसके लिए मेरे लिए ठीक काम किया है।

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
</dependency>

0

Pom.xml में निम्नलिखित निर्भरता जोड़ें

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

0

C ड्राइव-> user-> PcName-> find .m2 पर जाएं और वहां डाउनलोड की गई ojdbc जार फाइल को पेस्ट करें, सर्वर अपने आप इसे चुन लेगा।


-1

ओरेकल JDBC ड्राइवर और अन्य साथी जार सेंट्रल मावेन पर उपलब्ध हैं। हम 11.2.0.4, 12.2.0.2, 18.3.0.0, 19.3.0.0, 19.6.0.0, और 19.7.0.0 से आधिकारिक समर्थित Oracle JDBC संस्करणों का उपयोग करने का सुझाव देते हैं। ये सेंट्रल मावेन रिपोजिटरी पर उपलब्ध हैं । अधिक जानकारी के लिए मावेन सेंट्रल गाइड का संदर्भ लें ।

यह नवीनतम संस्करण का उपयोग करने के लिए अनुशंसित है। JDK संगतता के लिए अक्सर पूछे जाने वाले प्रश्न देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.