মাভেন: অ-সমাধানযোগ্য পিতাম POM


104

আমি 1 টি শেল প্রকল্প এবং 4 শিশু মডিউল হিসাবে আমার মাভেন প্রকল্প সেটআপ করেছি have আমি যখন শেলটি তৈরির চেষ্টা করি। আমি পাই:

[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-এর প্রতিস্থাপন করুন, যা মডিউল ছিল তা দিয়ে replace

তাদের সমস্ত তাদের পম মধ্যে পিতামাতার রেফারেন্স আছে।

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

4
যদি কেউ আগ্রহী হয় যোগ <relativePath>..</relativePath>অধীনে <parent></parent>আমার জন্য কাজ করেন।
ক্যাপ্টান

4
এটি চালানmvn install -N & mvn install
সে গানটি

আপেক্ষিক পথটি অ-সঙ্গতিপূর্ণ প্রকল্পগুলির জন্য যখন কোনও "সমাধান" হয় না যখন প্রত্যাশা মডিউলটির প্যারেন্ট ফোল্ডারে কোনও পম অ্যাক্সেসযোগ্য হয়।
রিক ও'শিয়া

আমার ক্ষেত্রে এটি pom.xML ফাইলটিতে ভুল টাইপ করার কারণে হয়েছিল।
ওলেকসেই ক্যাস্লিটসিন

সকল সম্ভব বিষয় সংক্ষিপ্ত: stackoverflow.com/a/62704660/6172857
সুমিত Badsara

উত্তর:


95

শুধু রেফারেন্সের জন্য।

মাভেনের আনন্দ।

মডিউলগুলির আপেক্ষিক পথটিকে ../pom.xML এ রেখে দেওয়া হয়েছে solved

parentউপাদান একটি আছে relativePathউপাদান যে আপনার পিতা বা মাতা নির্দেশিকা বিন্দু করতে হবে। এটি ডিফল্ট..


17
হ্যাঁ. মাভেন ব্যবহারের প্রয়োজন হয় আপনি কী করেন তা আপনার জানা উচিত, ট্রায়াল এবং ত্রুটি আপনাকে খুব দূরে পাবেন না। অন্যদিকে বেশ কয়েকটি ভাল রেফারেন্স পাওয়া যায়। এটি একটি
নিকোলা মুসাত্তি

6
সুতরাং আপনি এই <relativePath>..</relativePath>অধীনে যুক্ত <parent></parent>?
অষ্টাভিয়ান

ধন্যবাদ সমস্যার সমাধানের জন্য আমি কিছুক্ষণ চেষ্টা করেছিলাম। আমি থেকে আপেক্ষিক পাথ গ্রহণ ../pom.xmlকরতে ../<parent folder>/pom.xml
মারিও কুর্জওয়েল

আপনি যদি কোনও ব্যক্তিগত ভাণ্ডারের দিকে ইশারা করেন তবে << সম্পর্কিত প্যাট> চাপিয়ে দেওয়া সমস্যার সমাধান করার প্রয়োজন হবে না। বিশদ ব্যাখ্যার জন্য টোম জ্লুসকি প্রতিক্রিয়ার জন্য নীচে দেখুন।
Gi1ber7

আমি আমার মূল পোম ফাইলটি একই ডিরেক্টরিতে (একই প্রকল্পে) অন্য একটিতে (পরীক্ষার জন্য) প্রসারিত করার চেষ্টা করছি। তবে এটি এই ত্রুটিটি সমাধান করে না। এটি ঠিক করার কোন ধারণা?
প্রানিথ পাইরিস

40

ডিরেক্টরিতে সঠিক settings.xmlফাইল রেখে এটিও ঠিক করা যায় can~/.m2/


4
ঠিক এই সমস্যাটি আমার সমস্যার সমাধান করেছে, ধন্যবাদ !!! তবে এটি কোনও ডিরেক্টরিতে রেখে নয়, বরং এটি পছন্দকে - মাভেন - ব্যবহারকারীর সেটিংসে ইক্লিপকে নির্দেশ করছে।
মস্তিষ্ক

আমার সমস্যাও সমাধান করেছেন। কেবল সেটিংসটিও সঠিকভাবে কনফিগার করা আছে তা নিশ্চিত করতে 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ভান্ডারগুলি ঘোষণা করা, মাভেন আপডেট প্রকল্প চালু করা, প্রোফাইল সক্রিয় করা এবং পুনরায় সংগ্রহের ঘোষণাটি আবার প্রোফাইলে রাখা। এটি বরং এক্লিপস বাগ, মাভেন বাগ নয়।


একই অবস্থা! প্রাইভেট রেপো পোমে যোগ করা হয়নি।
লরেন্সচেন

5

<relativePath />পামের পিতামাতার মতো দেখতে কেবল যুক্ত করুন :

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

4
এটি কেবল তখনই প্রযোজ্য যখন পিতা-মাতার একই দির কাঠামোতে নেই, যেমন দূরবর্তী সংগ্রহস্থলে।
ওন্দ্র Žižka

4

অ-সমাধানযোগ্য পিতামাতা POM: এর অর্থ আপনি পিতামাতার রেপো সমাধান করতে পারবেন না।

ডিবাগ মোডে ট্রুন:

[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- র ফলাফলের জন্য setting m2 / এ একটি सेटिंग.xML নির্দিষ্ট করে। / ব্যবহারকারীর / ব্যবহারকারীর নাম / এম 2 / সেটিং.এক্সএমএল

এই এক্সএমএলে আপনাকে রিপোজিটরি সংক্রান্ত তথ্য নির্দিষ্ট করতে হবে।


অসাধারণ ! XML সেটিংসে আমার রেपो বিশদ যুক্ত করা। তবে কেন এটি পম এক্সএমএল থেকে নেওয়া হচ্ছে না (এতে একই রেপো যুক্ত হয়েছে)?
স্মিফলেস

2

শিশু পিওএম-এ আপনার সঠিক মান আছে কিনা তা যাচাই করুন

GroupId
ArtefactId
Version

Eclipse এ, উদাহরণস্বরূপ, আপনি এটির জন্য অনুসন্ধান করতে পারেন: গ্রহন: প্যারেন্ট পম অনুসন্ধান করুন


2

<relativePath>

আপনি যদি কোনও শিশু প্রকল্পের আওতায় তৈরি করেন তবে <relativePath>প্যারেন্ট পম সমাধান করতে আপনাকে সহায়তা করতে পারে।

প্যারেন্ট পম ইনস্টল করুন

তবে আপনি যদি শিশু প্রকল্পটি এর ফোল্ডার থেকে তৈরি করেন <relativePath>তবে কার্যকর হবে না। আপনি installপ্রথমে আপনার স্থানীয় সংগ্রহস্থলে পিতামাতাকে পম করতে পারেন , তারপরে শিশু প্রকল্পটি তৈরি করতে পারেন।


1

1.0_A0 কে $ {project.version। দিয়ে প্রতিস্থাপন করুন

একবার mvn চালান। এটি সমস্ত প্রয়োজনীয় সংগ্রহগুলি ডাউনলোড করবে। আপনি এই পদক্ষেপের পরে 1.0_A0 এ ফিরে যেতে পারেন।


এটি কেবল তখনই কাজ করে যদি প্রয়োজনীয় প্যারেন্ট POM এর সাব-মডিউলটির POM এর মতো সংস্করণ থাকে। এই সবসময় তা হয় না।
জেরোড ব্রোজার

1

আমার কাজের ক্ষেত্রেও আমার একই রকম সমস্যা ছিল।

নির্ভরতা ছাড়াই প্যারেন্ট প্রজেক্ট তৈরি করা .m2 ফোল্ডারে প্যারেন্ট_প্রজেক্ট.পম ফাইল তৈরি করে।

তারপরে প্যারেন্ট 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

আমি দীর্ঘদিন চেষ্টা করার পরেও আমার উপর সেই সমস্যাটি সমাধান করেছি, আমি নতুন তৈরি "প্যারেন্ট_পম.এক্সএমএল, রিমোটে অবস্থিত প্যারেন্ট_পম.এক্সএমএল এর স্থানীয় এবং আটকানো সামগ্রীতে শিশু মডিউল ফাইল ডিরেক্টরিতে" প্যারেন্ট_পম.এক্সএমএল "নামে আরও একটি ফাইল তৈরি করেছি" "। এটি আমার পক্ষে কাজ করেছে এবং ত্রুটির বার্তা চলে গেছে।


0

নীচের হিসাবে আপেক্ষিক পাথ ট্যাগ ভিতরে করুন

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

এবং তারপরে রানআস-> ম্যাভেন বিল্ড

এটা আমার জন্য কাজ করেছে।



-2

আমার সমস্যা ছিল যে দুটি চুল্লি বিল্ড pom.xML ফাইলগুলির একই আর্টফ্যাক্টআইডি ছিল।


আমার ক্ষেত্রে, এই পিতামাতা মডিউলটি প্যারেন্ট ফোল্ডারে ছিল না, আমাকে চাইল্ড মডিউল <relativePath>
../part- Module
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.