मावेन: गैर-resolvable माता-पिता पोम


103

मेरे पास 1 शेल प्रोजेक्ट और 4 बच्चों के मॉड्यूल के रूप में मेरा मैवेन प्रोजेक्ट सेटअप है। जब मैं शेल बनाने की कोशिश करता हूं। मुझे मिला:

[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR] The project module1:1.0_A0 (C:\module1\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find shell:pom:1.0_A0 in http://nyhub1.ny.ssmb.com:8081/nexus/content/repositories/JBoss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help 2]

अगर मैं एक अकेला मॉड्यूल बनाने की कोशिश करता हूं तो मुझे वही त्रुटि मिलती है जो केवल मॉड्यूल 1 को प्रतिस्थापित करता है, जो भी मॉड्यूल था।

उन सभी को माता-पिता को उनके चरणों में संदर्भित करें।

<parent>
    <artifactId>shell</artifactId>
    <groupId>converter</groupId>
    <version>1.0_A0</version>
</parent>

यहाँ शेल पोम के प्रासंगिक भाग दिए गए हैं:

<groupId>converter</groupId>
<artifactId>shell</artifactId>
<version>1.0_A0</version>
<packaging>pom</packaging>
<name>shell</name>


<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>

1
अगर किसी को दिलचस्पी है, मेरे लिए काम करने के <relativePath>..</relativePath>तहत जोड़ने <parent></parent>
कपतान

2
इसे चलाएंmvn install -N & mvn install
Se Song

गैर-अनुरूप परियोजनाओं के लिए सापेक्ष पथ एक "समाधान" नहीं है जब उम्मीद है कि मॉड्यूल के मूल फ़ोल्डर में एक पोम होना चाहिए।
रिक ओ'शे

मेरे मामले में यह pom.xml फ़ाइल में गलत तरीके से डालने के कारण था।
ओलेक्सी किस्लीत्सिन

सभी संभावित मुद्दों को संक्षेप में प्रस्तुत किया गया: stackoverflow.com/a/62704660/6172857
सुमित बडसरा

जवाबों:


95

सिर्फ संदर्भ के लिए।

मावेन की खुशियाँ।

मॉड्यूल के सापेक्ष पथ को ../pom.xml पर रखकर इसे हल किया।

parentतत्व एक है relativePathतत्व है कि आप माता-पिता की निर्देशिका करने के लिए बात करने के लिए की जरूरत है। यह करने के लिए चूक..


17
हाँ। मावेन का उपयोग करने के लिए आवश्यक है कि आप जानते हैं कि आप क्या करते हैं, परीक्षण और त्रुटि आपको बहुत दूर नहीं मिलेगी। दूसरी ओर कई अच्छे संदर्भ उपलब्ध हैं। यह एक है
निकोला मुसाटी

6
तो आपने इसके <relativePath>..</relativePath>तहत जोड़ा <parent></parent>?
ऑक्टेवियन

धन्यवाद मैंने इस समस्या को हल करने के लिए कुछ समय के लिए कोशिश की। मैं रिश्तेदार रास्ते से ले ../pom.xmlगया ../<parent folder>/pom.xml
मारियो Kurzweil

यदि आप एक निजी रिपॉजिटरी की ओर इशारा कर रहे हैं तो समस्या को हल करना जरूरी नहीं है। विस्तार से स्पष्टीकरण के लिए टॉम ज़ालूसकी प्रतिक्रिया के लिए नीचे देखें।
Gi1ber7

मैं अपनी मुख्य pom फ़ाइल को उसी निर्देशिका (उसी प्रोजेक्ट) में किसी अन्य (परीक्षण के लिए) में विस्तारित करने का प्रयास कर रहा हूं। लेकिन यह इस त्रुटि को हल नहीं करता है। इसे कैसे ठीक किया जाये, कोई विचार?
प्रणीत पीरीस

39

इसे डायरेक्ट settings.xmlफाइल को ~/.m2/डायरेक्टरी में डालकर भी ठीक किया जा सकता है ।


3
बिल्कुल है कि मेरी समस्या का हल, धन्यवाद !!! लेकिन इसे कुछ डायरेक्टरी में डालकर नहीं, बल्कि एक्लिप्स को प्रीफरेंस - मावेन - यूजर सेटिंग्स में इंगित करते हुए।
ब्रेन

मेरी समस्या का समाधान भी किया। बस यह सुनिश्चित करना होगा कि सेटिंग्स ठीक से maven.repoभी कॉन्फ़िगर की गई हैं ..
सारण

21

वैकल्पिक कारण यह भी हो सकता है कि मूल कलाकृतियाँ रिपॉजिटरी से आती हैं जो कि pom.xmlआम तौर पर निजी रिपॉजिटरी से सुलभ नहीं है। समाधान यह था कि उस भंडार को इसमें प्रदान किया जाए pom.xml:

<repositories>
    <repository>
        <id>internal-repo</id>
        <name>internal repository</name>
        <url>https://my/private/repo</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

मेरे मामले में ग्रहण के कारण समस्या और भी जटिल थी: रिपॉजिटरी केवल विशेष प्रोफ़ाइल ( <profiles><profile><id>activate-private-repo</id><repositories>...) में सक्रिय थी और ग्रहण में मावेन जीयूआई ने इस प्रोफ़ाइल को Ctrl+Alt+Pशॉर्टकट के माध्यम से सेट करने की अनुमति नहीं दी ।

इसका समाधान अस्थायी रूप से प्रोफ़ाइल (बिना शर्त) के बाहर भंडार की घोषणा करना था, Alt+F5मावेन अपडेट प्रोजेक्ट लॉन्च करना , प्रोफ़ाइल को सक्रिय करना और भंडार घोषणा वापस प्रोफ़ाइल में डालना। यह एक्लिप्स बग है, मावेन बग नहीं।


वही स्थिति! निजी रेपो पोम में नहीं जोड़े गए।
लोरेंसकैन

4

गैर-पुन: प्रयोज्य मूल पोम: इसका मतलब है कि आप मूल रेपो को हल नहीं कर सकते।

डिबग मोड पर ट्रून:

[DEBUG] Reading global settings from **/usr/local/Cellar/maven/3.5.4/libexec/conf/settings.xml**
[DEBUG] **Reading user settings from /Users/username/.m2/settings.xml**
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.5.4/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/username/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/username/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/username/.m2/repository
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:

क्योंकि मूल रेपो मावेन सेंट्रल का हिस्सा नहीं है। अभिभावक POM के परिणाम में मदद के लिए समाधान ~ m2 / में एक सेटिंग। Xml निर्दिष्ट करता है। /Users/username/.m2/settings.xml

उस XML में, आपको रिपॉजिटरी जानकारी निर्दिष्ट करने की आवश्यकता हो सकती है।


बहुत बढ़िया ! सेटिंग्स में मेरे रेपो विवरण को जोड़ना xml ने काम किया। लेकिन यह पोम एक्सएमएल (जिसमें उसी रेपो को जोड़ा गया है) से क्यों नहीं लिया जा रहा है?
स्माइलीफेस

3

बस <relativePath />पोम में माता-पिता को जोड़ना चाहिए:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath />
    </parent>

2
यह केवल तब लागू होता है जब माता-पिता एक ही धीर संरचना में नहीं होते हैं, अर्थात एक दूरस्थ भंडार में।
ओन्द्रा kaižka

2

सत्यापित करें कि आपके पास बच्चे POMs में सही मान हैं

GroupId
ArtefactId
Version

उदाहरण के लिए, आप ग्रहण कर सकते हैं: ग्रहण: खोज मूल पोम


2

<relativePath>

यदि आप एक बच्चे की परियोजना के तहत निर्माण करते हैं, तो <relativePath>आप माता-पिता की समस्या को हल करने में मदद कर सकते हैं।

मूल पोम स्थापित करें

लेकिन अगर आप अपने फ़ोल्डर से बच्चे के प्रोजेक्ट का निर्माण करते हैं, <relativePath>तो यह काम नहीं करता है। आप installपहले अपने स्थानीय भंडार में जनक पोम कर सकते हैं, फिर बाल परियोजना का निर्माण कर सकते हैं।


1

$ {Project.version} के साथ 1.0_A0 बदलें

एक बार मावन चलाओ। यह सभी आवश्यक रिपॉजिटरी डाउनलोड करेगा। आप इस चरण के बाद 1.0_A0 पर वापस आ सकते हैं।


यह केवल तभी काम करता है जब आवश्यक मूल POM का उप-मॉड्यूल POM के समान संस्करण हो। ऐसी स्थिति हर बार नहीं होती है।
गेरोल्ड ब्रॉसर

1

मुझे अपने काम पर इसी तरह की समस्या थी।

निर्भरता के बिना मूल परियोजना का निर्माण .m2 फ़ोल्डर में parent_project.pom फ़ाइल बनाई।

फिर पेरेंट पोम में चाइल्ड मॉड्यूल जोड़ें और मावेन बिल्ड को चलाएं।

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>

आपके उत्तर, <सापेक्षपाथ /> के साथ मिलकर मेरे लिए समस्या हल हो गई। * रिश्तेदारपाथ अकेले नहीं थे।
ग्युरो गियरलोज

0

में एक निर्भरता जोड़ें

pom.xml:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
</dependency>

0

मैंने बहुत लंबे प्रयास के बाद मुझ पर उस समस्या को हल किया, मैंने चाइल्ड मॉड्यूल फाइल डायरेक्टरी में "parent_pom.xml" नाम की एक और फ़ाइल बनाई, जो कि parent_pom.xml के स्थानीय और पेस्ट की गई सामग्री पर है, जो कि नए पर "parent_pom.xml" है। "। इसने मेरे लिए काम किया और त्रुटि संदेश चला गया।


0

रिश्तेदार पथ टैग के रूप में निम्नानुसार है

<relative>{project_name}/pom.xml</relative>

और फिर RunAs-> मावेन निर्माण

इसने मेरे लिए काम किया।


-2

मेरे पास समस्या थी कि दो रिएक्टर बिल्ड pom.xml फ़ाइलों में एक ही artefactId था।


मेरे मामले में, यह मूल मॉड्यूल पैरेंट फ़ोल्डर में नहीं था, मुझे चाइल्ड मॉड्यूल <रिश्तेदारपाथ> ../ पैरेंट-मॉड्यूल-डीआईआर </
सापेक्षपाठ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.