Eclipse বিল্ড পাথ নেস্টিং এররগুলি


122

আমি আমার ক্লাসের জন্য একটি সাধারণ জেএসপি / সার্লেট / টমক্যাট ওয়েবঅ্যাপে কাজ করছি। অধ্যাপক আমাদের একটি ফোল্ডার কাঠামো ব্যবহার করতে বলেছেন যা ডিফল্ট গতিশীল ওয়েব প্রকল্প কাঠামোর চেয়ে কিছুটা আলাদা। ওয়েব কনটেন্ট ফোল্ডারটি ব্যবহার না করে তিনি আমাদের সকল সোর্স কোডটি এসআরসি / মেইন / জাভা এবং এসসিআর / মেইন / ওয়েব অ্যাপের অধীনে চান।

আমি যখন অ্যাপটি চালনা করি তখন আমার স্বাগত ফাইলটি দুর্দান্ত প্রদর্শিত হয়, তবে যখন আমি আমার সার্লেলেটগুলি অ্যাক্সেস করার চেষ্টা করি তখন আমি পাই:

 Http 500 SEVERE: Allocate exception for servlet InitDb

java.lang.ClassNotFoundException। আমি নিশ্চিত এটি একটি বিল্ড পাথ ত্রুটি। বিল্ড পাথটিতে আমার চূড়ান্ত / এসসিআর রয়েছে তবে আমি সতর্কতাটি পাচ্ছি

"Cannot nest 'final/src/main/webapp/WEB-INF/classes' inside 'final/src'. To enable the    nesting exclude 'main/' from 'final/src'

এখানে চিত্র বর্ণনা লিখুন

আমার এই স্থাপনা সমাবেশে এটি আমার রয়েছে:

<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> 

আমি যখন প্রধানটিকে বাদ দিই / সতর্কতা চলে যায় তবে সমস্যাটি ঠিক হয় না। আমি কোন পরামর্শ প্রশংসা করবে। ধন্যবাদ।

উত্তর:


309

আমি একটি নতুন প্রকল্প তৈরি করার পরেও আমার একই সমস্যা ছিল। আমি Eclipse এর মধ্যে জাভা প্রকল্প তৈরি করছিলাম, তারপরে এটি মার্ভেনাইজ করব, তারপরে জাভা বিল্ড পথের বৈশিষ্ট্যগুলি মুছে ফেলা src/এবং যুক্ত করা src/main/javaএবং src/test/java। আমি যখন মাভেন আপডেট চালনা করি তখন এটি নেস্টেড পাথ ত্রুটি দিত।
তারপরে আমি অবশেষে বুঝতে পেরেছিলাম - কারণ আমি এন্ট্রিটি আগে দেখিনি <sourceDirectory>src</sourceDirectory>-পোম ফাইলে একটি লাইন লেখা আছে যখন আমি এটি মেভেনাইজ করি। এটি অপসারণের পরে এটি সমাধান করা হয়েছিল।


1
এটি অনেকগুলি এলোমেলো কৌশলগুলির মধ্যে একটি। কেন ব্যাখ্যা করছি না। এইভাবে কম সহায়ক।
স্মুইকিপিডিয়া

4
আমি স্রেফ স্ক্রিন / মেইন / জাভাতে পম এন্ট্রিটির নামকরণ করেছি এবং সব ভাল ছিল। পোস্ট acheron55 জন্য ধন্যবাদ
Beezer

তুমি ওখানে রেখেছ? বা কোথা থেকে এসেছে?
লাইনে

23

আমি এই থ্রেডটির একটি অ-মভেনিশ উত্তর দিতে চাইছি।

সংস্করণ নিয়ন্ত্রণ এবং কঠোর ডিরেক্টরি কাঠামোর কারণে, আমি অপসারণ src/এবং যোগ করার অনুরূপ কিছু করার আচারনের উত্তর (সেরা উত্তর) অনুসরণ করতে অক্ষম src/main/javaএবংsrc/test/java বিল্ড পাথের

আমি কয়েক সপ্তাহ ধরে এই নেস্টেড বিল্ড পাথ ইস্যুটির সাথে লড়াই করে আসছিলাম। সমস্যার উত্তরটি ত্রুটি বার্তায় ইঙ্গিত করা হয়েছে:

To enable the nesting exclude 'main/' from 'final/src'

ফিক্স

আপনার নির্মাণের পথে আপনাকে এবং তারপরে Inclusion and Exclusion Patternsক্লিক করে সম্পাদনা করতে হবে :Excluded: (None)Edit...

  1. নেভিগেটরে যান এবং প্রকল্পে ডান ক্লিক করুন
  2. নির্মাণ পথ
  3. বিল্ড পাথ কনফিগার করুন
  4. উত্স (ট্যাব)

বর্জন প্যাটার্নস

সেখানে আপনি main/webapp/WEB-INF/classesএকটি হিসাবে যুক্ত করতে পারেন Exclusion Pattern। তারপরে এটি আপনাকে main/webapp/WEB-INF/classesপৃথক উত্স ফোল্ডার হিসাবে বিল্ড পাথে যুক্ত করার অনুমতি দেবে ।


10

এটা চেষ্টা কর:

লাইব্রেরি ট্যাব থেকে:

Eclipse -> right click on project name in sidebar -> configure build path -> Libraries

আপনার ওয়েব অ্যাপ্লিকেশন গ্রন্থাগারগুলি সরান:

click on "Web App Libraries" -> click "remove"

এগুলিতে আবার যুক্ত করুন:

click "Add Library" -> click to highlight "Web App Libraries" -> click "next" -> confirm your desired project is the selected option -> click "Finish"

"ওয়েব অ্যাপ লাইব্রেরি" হাইলাইট করা:

"ওয়েব অ্যাপ লাইব্রেরি" হাইলাইট করা


3

আমার একই সমস্যা ছিল এবং উপরের সঠিক উত্তরটি আমার পক্ষে কার্যকর হয়নি। আমি এটি সমাধান করার জন্য যা করেছি তা হ'ল Build Path->Configure Build Pathউত্স ট্যাবে যেতে এবং আমি সমস্ত উত্স সরিয়ে নিয়েছি (যার কেবলমাত্র একটি উত্স ছিল) এবং সেখান থেকে সেগুলিকে পুনরায় কনফিগার করেছি। আমি গ্রাহক থেকে প্রকল্পটি সরিয়ে শেষ করেছি এবং ত্রুটিটি সাফ করার জন্য আবার মাভেন প্রকল্পটি আমদানি করেছি।


3

আমার ক্ষেত্রে আমি gradle প্রকৃতি প্রকল্পে আছে অন্ধকার , সমস্যা একটি ছিল build.gradleযেখানে এই, sourceSetsনিদিষ্ট হয়:

sourceSets {
    main {
        java {
            srcDir 'src'
        }
    }
 }

এই ভাল কাজ করে বলে মনে হয় intelliJ অবশ্য চেয়ে মনে হয় অন্ধকার নীড় পছন্দ করেন না src, src/java, src/resources। ইন অন্ধকার আমি এটা পরিবর্তন করতে হবে:

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
    }
}

3

এখানে একটি সহজ সমাধান:

  1. প্রকল্পে >> বৈশিষ্ট্য >> নির্মাণের পথে ডান ক্লিক করুন;
  2. উত্স ট্যাবে, সমস্ত উত্স ফোল্ডার নির্বাচন করুন;
  3. এগুলো মুছে ফেলো;
  4. প্রকল্পে ডান ক্লিক করুন, মাভেন >> প্রকল্পটি আপডেট করুন।

2

আপনার উত্স এবং আপনার টার্গেট ডিরেক্টরি পৃথক করতে হবে যেখানে বিল্ড আউটপুট চলে। এটি উল্লেখ করাও গুরুত্বপূর্ণ যে কোনও শ্রেণীর ফাইল উত্স ডিরেক্টরিতে শেষ হতে পারে না। এটি আপনার অধ্যাপকের পরামর্শের বিপরীতে নয় - আসলে তিনি। / এসআরসি / মেইন / জাভা এবং ./src/main/webapp যাচ্ছেন মভেন স্ট্যান্ডার্ড উত্স কাঠামো প্রচার করছেন। দ্বিতীয়টি যেমন ধরতে হবে। বাধ্যতামূলক ওয়েব-আইএনএফ / ওয়েব.এক্সএমএল ফাইল কিন্তু আপনি কখনই আসল ক্লাস স্থাপন করতে পারবেন না।

আপনাকে যা পরিবর্তন করতে হবে তা হ'ল আপনার টার্গেট ডিরেক্টরি। আমি একই মানের সাথে যেতে এবং এর জন্য "./target" নামটি বেছে নেওয়ার পরামর্শ দিচ্ছি। সমস্ত বিল্ট করা ফাইলগুলি এখানে packুকে যাবে এবং প্যাকেজিংয়ের ফলে একটি সঠিক প্রয়োগযোগ্য নিদর্শন তৈরি হবে act আপনি যদি পরে ম্যাভেন ব্যবহার করে মাইগ্রেট করে থাকেন তবে এটি স্ক্রিপ্টযুক্ত, পুনরাবৃত্তিমূলক উপায়ে এটি করতে সহায়তা করবে।

আশা করি এটি আপনার সমস্যাটিকে সরিয়ে দেয়।


1

গৃহীত সমাধানটি আমার পক্ষে কার্যকর হয়নি তবে আমি প্রকল্পের সেটিংসে কিছু খনন করেছি।

আপনি যদি কোনও ডায়নামিক ওয়েব প্রকল্প ব্যবহার করছেন তবে নিম্নলিখিত সমাধানটি আমার পক্ষে কমপক্ষে এটি ঠিক করেছে:

  1. প্রোজেক্টের উপর রাইট ক্লিক করুন তারপর বৈশিষ্ট্য। (বা প্রকল্পে Alt-enter)
  2. স্থাপনার অধীনে "এসসিআর" অপসারণ করুন।

আপনি src / main / java যোগ করতে সক্ষম হবেন able এটি স্বয়ংক্রিয়ভাবে এটিকে ডিপ্লয়মেন্ট অ্যাসেমব্লিতে যুক্ত করে।

সতর্কতা: আপনি যদি একটি এসসিআর / পরীক্ষা / জাভা নোট যোগ করেন তবে এটি ডিপোমিলি এসেম্বলিতে এটি যুক্ত করে। সাধারণত, আপনার এটির দরকার নেই। আপনি এটি অপসারণ করতে পারেন।


1

এটি আমাকে গ্রহণের সাথে এক্লিপসের সাথে গ্লিক্স ফিক্স করার বিশাল খরগোশের গর্তটি নামাতে শুরু করেছিল, তবে আমি সবেমাত্র গ্রহটি থেকে প্রকল্পটি মুছে ফেলেছি এবং এটি ঠিক করার জন্য পুনরায় আমদানি করেছি।


0

ইক্লিপস সংকলকটি সঠিকভাবে কাজ করতে আপনাকে উত্স পথ থেকে চূড়ান্ত / এসআরসি অপসারণ করতে হবে এবং তার পরিবর্তে চূড়ান্ত / এসআরসি / প্রধান / জাভা যুক্ত করতে হবে। এটি আপনার সমস্যার সমাধানও করতে পারে কারণ এখন বিল্ড ডিরেক্টরি জাভা উত্স ফোল্ডারের মধ্যে থাকবে না।


0

এসটিএস আইডিই

এটি কোন ফোল্ডারটিকে "উত্স ফোল্ডার হিসাবে ব্যবহার করুন" বলছে তার উপর নির্ভর করে। ছবির কাঠামোটিতে যদি কেউ এটি "টার্গেট" বা "উত্পন্ন" ফোল্ডারে বলে, তবে সে "নেস্টেড" ত্রুটিটি পেয়ে যায়। তবে "সিএক্সএফ" ফোল্ডারে, যা সর্বশেষে, পম.এক্সএমএল এর 'প্লাগইন' বিভাগে উল্লিখিত এবং প্যাকেজ কাঠামোটি কোথা থেকে শুরু হয় (.wsdl ফাইলে দেখানো হয়েছে), অর্থাত্ - 'উত্স' একটিকে করার জন্য সঠিক ফোল্ডারটি তাহলে কোনও ত্রুটি নেই


0

অনুরূপ ইস্যু পেয়েছি। নিম্নলিখিত পদক্ষেপগুলি করেছে, সমস্যার সমাধান হয়েছে:

  1. গ্রহনে প্রকল্পটি সরান।
  2. মুছে দিন। প্রকল্প ফাইল এবং। সেটিংস ফোল্ডার।
  3. পুনরায় গ্রহণের জন্য বিদ্যমান মেভেন প্রকল্প হিসাবে প্রকল্পটি আমদানি করুন।

-3

দুটি ফোল্ডার তৈরি করুন: final/src/উত্স জাভা কোডটি সঞ্চয় করতে এবং final/WebRoot/

আপনি উত্স এবং ওয়েবরুট একসাথে রাখতে পারবেন না। আমি মনে করি আপনি আপনার শিক্ষককে ভুল বুঝতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.