ইন্টেলিজ এবং টমক্যাট ... পরিবর্তিত ফাইলগুলি টমক্যাট দ্বারা স্বয়ংক্রিয়ভাবে স্বীকৃত হয় না


135

আমি টমক্যাটের সাথে ইন্টেলিজ আলটিমেট চালাচ্ছি এবং একটি যুদ্ধ স্থাপন করছি। টমক্যাটের ওয়েবঅ্যাপ ডিরেক্টরিতে সবকিছু জরিমানা করে।

আমি যখন কোনও এক্সএইচটিএমএল ফাইলের মতো কোনও ফাইল পরিবর্তন করি, তখন টমক্যাটের স্বয়ংক্রিয়ভাবে সেই পরিবর্তনটি গ্রহণ করার কোনও উপায় আছে? এই মুহুর্তে আমার ইন্টেলিজ থেকে ফাইলটি অনুলিপি করে টমক্যাট ওয়েব অ্যাপ্লিকেশন ডিরেক্টরিতে এটি যেখানে রয়েছে তার ডিরেক্টরিতে এটি অনুলিপি করা দরকার। আমি জানি যে এখানে কিছু ফাইল রয়েছে যাতে পুনরায় সংকলনের প্রয়োজন হবে, তবে xhtmls এর মধ্যে একটি নয় not

উত্তর:


20

স্ক্রিনশট ব্যবহার করে ক্রিয়াগুলির ক্রমটি বর্ণনা করি:

  1. আপনার টমকেট রান / ডিবাগ কনফিগারেশন খুলুন (চালান> কনফিগারেশন সম্পাদনা করুন)

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

  1. অ্যাড আইকনটি ক্লিক করুন, 'আর্টিফ্যাক্ট' নির্বাচন করুন এবং তারপরে নির্বাচন করুন pizza_mvc:war exploded: এখানে চিত্র বর্ণনা লিখুন

  2. 'আপডেট অ্যাকশন' এবং 'অন ফ্রেম নিষ্ক্রিয়করণ' পরিবর্তন করুন: এখানে চিত্র বর্ণনা লিখুন

  3. যতবার আপনি আপনার সংস্থানগুলি রিফ্রেশ করতে চান, টিপুন <Ctrl> + F10


আমাকে 18 'এ' আপডেট 'ক্রিয়া "
কিমি 1

290

আপনি যদি ইন্টেলিজ আইডিইএর সাথে যুদ্ধ স্থাপন করেন তবে এটি করা যাবে না। তবে আপনি যদি বিস্ফোরিত যুদ্ধ স্থাপন করেন তবে এটি হতে পারে । আইডিইএতে:

  1. আপনার টমকেট রান / ডিবাগ কনফিগারেশন খুলুন ( চালান> কনফিগারেশন সম্পাদনা করুন )
  2. "স্থাপনা" ট্যাবে যান
  3. "সার্ভার স্টার্টআপ এ ডিপ্লয় করুন" বিভাগে, নিদর্শনটি সরিয়ে দিন (উপস্থিত থাকলে) my-webapp-name:war
  4. অ্যাড আইকনটি ক্লিক করুন, 'আর্টিফ্যাক্ট' নির্বাচন করুন এবং তারপরে নির্বাচন করুন my-webapp-name:war exploded
  5. ওকে ক্লিক করুন ("ডিপ্লোয় করতে শৈল্পিক নির্বাচন করুন" কথোপকথনে)
  6. এখনও রান / ডিবাগ কনফিগারেশন উইন্ডোতে, "সার্ভার" ট্যাবটি নির্বাচন করুন
  7. সেই ট্যাবের মাঝখানে, "ফ্রেম ডিঅ্যাক্টিভেশন" সেটিংসটিকে "আপডেট রিসোর্স" বা "আপডেট ক্লাস এবং রিসোর্স" এ পরিবর্তন করুন
    • সংস্থানগুলি আপডেট করুন: সমস্ত পরিবর্তিত সংস্থান (যা ক্লাস বাদে সমস্ত অ্যাপ্লিকেশন উপাদান) আপডেট করা হবে।
    • ক্লাস এবং সংস্থানগুলি আপডেট করুন: সমস্ত পরিবর্তিত সংস্থান আপডেট করা হবে; পরিবর্তিত ক্লাস পুনরায় সংযুক্ত করা হবে। নোট করুন যে আসল ক্লাসগুলি আপডেট করা হবে কিনা তা নির্ভরযোগ্যতা ওয়েব সার্ভারের উপর নির্ভর করে। যদি আমি স্মরণ করি, টমক্যাট এইচটিএমএল / এক্সএইচটিএমএল এবং জেএসপি ফাইলগুলি পুনরায় লোড করবে, তবে সার্লেট বা জেএসপি বা সার্লেটগুলি ব্যবহার করে এমন ক্লাস নয়। এর জন্য ডায়নামিক ক্লাসলোডারটি ব্যবহার করতে আপনাকে টমক্যাটটি সংশোধন করতে হবে।
  8. আপনি উপরের একটিতে " অন ​​'আপডেট' ক্রিয়াও সেট করতে পারেন ।
    • আপনি রান উইন্ডোতে আপডেট আপডেট আইকনআইকনটি (বা Ctrl+ F10) চাপলে কী ঘটে তা নির্ধারণ করে ।
    • "ডায়ালগ দেখান" নির্ধারণ করে যে IDEA আপনাকে প্রতিবার আপডেট আইকনটি চাপলে অনুরোধ জানাবে কিনা
  9. ঠিক আছে ক্লিক করুন।

এখন যে কোনও সময় আপনি কোনও পরিবর্তন করবেন, IDEA এর ফ্রেমটি নিষ্ক্রিয় হয়ে গেলে (যেমন ফোকাস হারায়) আইডিইএ পরিবর্তিত ফাইলগুলি পুনরায় চালু করবে lo এটি এক বা দুটি সময় নেয়, আপনি এটি আইডিইএর নীচের স্ট্যাটাস বারে দেখতে পাবেন। একথাও ঠিক যে। আপনাকে এখনও আপনার ওয়েব ব্রাউজারটি রিফ্রেশ করতে হবে যাতে এটি নতুন ফাইলটি নিয়ে আসে (অবশ্যই যদি পৃষ্ঠাটিতে আনার মতো অজ্যাক্সের অটো রিফ্রেশ থাকে)।

টমক্যাটের সাথে একটি ভাল সংমিশ্রণ হ'ল "ফ্রেম নিষ্ক্রিয়করণ" "আপডেট রিসোর্সগুলি" এবং "অন আপডেট" অ্যাকশনটিকে "রেডপ্লাই" বা "রিস্টার্ট সার্ভার" তে সেট করে to 'আপডেট' ক্রিয়াটির মাধ্যমে ক্লাস আপডেট হয়েছে।

জিরো টার্নারাউন্ড নামের একটি সংস্থা জেআরবেল বিক্রি করে যা একটি গতিশীল ক্লাসলোডার সমাধান। এ বিষয়ে তাদের পাঁচটি অংশের সিরিজও রয়েছে যা খুব ভাল।


আমার ত্রুটি আছে: Error: Artifact 'my-webapp-name:war exploded' has invalid extensionকিভাবে ঠিক করব?
আন্তন ডোজার্টসেভ

3
আমি স্বয়ংক্রিয়ভাবে ক্লাসগুলি পুনরায় লোড করার জন্য ডিসিইভিএম ব্যবহারের জন্য অত্যন্ত সুপারিশ করি। তারপরে আপনি অ্যাপ্লিকেশনটি পুনরায় প্রচার না করে উত্স কোডে যে কোনও পরিবর্তন আনতে "আপডেট ক্লাস এবং সংস্থানগুলি" ব্যবহার করতে পারেন। দেখুন: blog.jetbrains.com/idea/2013/07/… । এই টিউটোরিয়ালটি যা ব্যাখ্যা করে তা ছাড়াও ডিসিইভিএম এর জেআরআর নির্দেশ করতে টমক্যাট রান কনফিগারেশনের ডিবাগ ট্যাব - সেটআপ / সংযোগে জাভাআহোম সেট করা প্রয়োজন।
অ্যালেক্স ফেদুলভ

1
@ ইয়ারোস্লাভপ্রোকিপচিন - আমি জেবস এবং এটির যে কোনও 'বিশেষ' প্রয়োজনীয়তার সাথে পরিচিত নই। তবে যতদূর আমি জানি, এটি একই কাজ করা উচিত। টমক্যাটের জন্য, আইডিইএ একটি টমক্যাট (প্রসঙ্গ.এক্সএমএল) কনফিগারেশন তৈরি করে যা টমক্যাটকে টার্গেট / {প্রসঙ্গ নাম ame ডিরেক্টরিটি ওয়েব অ্যাপ্লিকেশন ডিরেক্টরি হিসাবে ব্যবহার করতে বলে। আপনি যে কোনও জেবিএস নির্দিষ্ট তথ্যের জন্য সহায়তা গাইডটি পরীক্ষা করতে চাইতে পারেন।
জাভারু

3
Step ধাপে, আপনি (কমপক্ষে ইনটেলিজ ১৪ এ) উপযুক্ত ড্রপডাউন-পছন্দগুলি পাবেন না যদি না আপনার সমস্ত শিল্পকর্ম "বিস্ফোরিত" হিসাবে লোড হয়।
মর্টেন্সী

1
@ চিফটিওপেনসিলস - পদক্ষেপ 5 টি "ডিপ্লয় করার জন্য শিল্পকর্মগুলি নির্বাচন করুন" কথোপকথনে ঠিক আছে ক্লিক করছে (যার জন্য "প্রয়োগ" হবে না), রান / ডিবাগ কনফিগারেশন উইন্ডো নয়। আমি 5 ধাপে একটি
স্পষ্টকরণ

12

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

একই সমস্যা আছে। ইন্টেলিজ আমার প্রকল্পটি আপডেট করে নি, কারণ আমি "রান মোড" হিসাবে চালাচ্ছি। আমি যখন ডিবাগ মোডে চলি এবং Ctrl+ টিপবোF10 , তখন এটি ক্লাস এবং সংস্থানগুলি আপডেট করে।


কন্ট্রোল-এফ 10 আমার জন্য সমস্যাটি স্থির করেছে। ধন্যবাদ!
জেফ্রি গেটজিন

3

আমি একটি ভাল উপায় খুঁজে পেয়েছি।

ইন অন্ধকার আমরা স্বয়ংক্রিয়ভাবে বিল্ড কম্পাইল + + রিলোড স্ট্যাটিক ফাইল আছে। প্রকৃতপক্ষে স্থিতিশীল ফাইলগুলি সরাসরি এসসিআর / প্রধান / ওয়েবঅ্যাপ থেকে পরিবেশন করা হয় ।

ইন IntelliJ পরিবর্তে থেকে সরাসরি ভজনা src / প্রধান / ওয়েবঅ্যাপ্লিকেশনটি , সেখানে যা আপনি আপনার একটি কপি থাকবে একটি ফোল্ডার লক্ষ্য তৈরি করা হয় src / প্রধান / ওয়েবঅ্যাপ্লিকেশনটি এবং অন্যান্য সম্পর্কিত .. ওয়েব-INF / শ্রেণীর / lib প্রসঙ্গ।

যদি আপনি বিস্ফোরিত শিল্পকর্মের আউটপুটকে src / main / webapp এ রেখে দেন তবে এটি আপনার উত্স ফাইলগুলিকে ওভাররাইট করবে না এবং এটি সরাসরি পরিবেশন করবে, আপনাকে আঘাত করতে হবে না - সংস্থানগুলি আপডেট করুন / সংস্থানসমূহ আপডেট করুন এবং ক্লাসগুলি

সুতরাং আপনার ইন্টেলিজজে যা করা দরকার তা হ'ল

  1. বিস্ফোরিত আর্টিক্ট আউটপুট ডিরেক্টরিকে এসআরসি / প্রধান / ওয়েবঅ্যাপে পরিবর্তন করুন ify এখানে চিত্র বর্ণনা লিখুন
  2. নোংরা ক্লাসগুলি সংরক্ষণ এবং সংকলন / সংকলনের জন্য একটি ম্যাক্রো তৈরি করুন (সেন্টিমিটার + শিফট + এফ 9) এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন
  3. অ্যাপ্লিকেশন চলাকালীন স্বয়ংক্রিয়ভাবে তৈরি করতে এবং তৈরি করতে রেজিস্ট্রি এবং পছন্দগুলি সম্পাদনা করুন (সেমিডি + শিফট + এ - রেজিস্ট্রি)। এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

এর পরে, আপনার যদি এমন কাজ রয়েছে যা ইন্টেলিজের বাইরে থেকে স্থিতিশীল ফাইলগুলি পরিবর্তন করে, আপনি তাত্ক্ষণিকভাবে ইনটেলিজ এবং আপডেট রিসোর্সগুলিতে না গিয়ে পরিবর্তনগুলি দেখতে পাবেন এবং ক্লাসগুলির জন্য আপনার যে ম্যাক্রো সংরক্ষণ করে এবং সংকলন করেন (নোট: আপনি কেবল কম্পাইলও চাপতে পারেন / রিকম্পাইল: সেন্টিমিডি + শিফট + এফ 9 / সেন্টিমিডি + এফ 9 - আপনার একাধিক খোলা সম্পাদকগুলি দেখতে পাবেন যে আপনার নোংরা * সম্পাদকগুলি নোংরা হবে এবং পরিবর্তনগুলি (শ্রেণিগুলি) পুনরায় লোড হবে)


দেখে মনে হয় আপনার যদি রেজিস্ট্রিটি কম্পাইল.আউটোমেক .. সক্রিয় করে থাকেন তবে এটি কেবল পরিবর্তনগুলি সংরক্ষণ করে আপনার পরিবর্তনগুলিকে ঠেলে দেয়।
রাদু টডার

0

এটি তখনই সম্ভব যখন আপনি বিস্ফোরিত যুদ্ধ ফোল্ডারটি স্থাপন করবেন, গরম পুনরায় লোডিং সক্ষম করবেন এবং ডিবাগ মোডে টোমক্যাট শুরু করবেন।

এটি অর্জনের পদক্ষেপগুলি।

  1. আপনার টমকেট রান / ডিবাগ কনফিগারেশন খুলুন (চালান> কনফিগারেশন সম্পাদনা করুন)
  2. "ডিপ্লয়মেন্ট" ট্যাবে যান 3.. "সার্ভার স্টার্টআপ এ ডিপ্লয় করুন" বিভাগে, আমার-ওয়েবঅ্যাপ-নামটি শিল্পকর্মটি সরিয়ে (উপস্থিত থাকলে) সরিয়ে দিন: যুদ্ধ
  3. অ্যাড আইকনটি ক্লিক করুন, 'আর্টিফ্যাক্ট' নির্বাচন করুন এবং তারপরে আমার-ওয়েবঅ্যাপ-নাম নির্বাচন করুন: যুদ্ধ বিস্ফোরিত হয়েছে
  4. ওকে ক্লিক করুন ("ডিপ্লোয় করতে শৈল্পিক নির্বাচন করুন" কথোপকথনে)
  5. এখনও রান / ডিবাগ কনফিগারেশন উইন্ডোতে, "সার্ভার" ট্যাবটি নির্বাচন করুন
  6. "অন ফ্রেম ডিঅ্যাক্টিভেশন" এবং "অন আপডেট অ্যাকশন" সেটিংসকে "ক্লাস এবং সংস্থান আপডেট করুন" তে পরিবর্তন করুন
  7. প্রয়োগ করুন এবং সংরক্ষণ করুন
  8. ফাইল ক্লিক করে সেটিংস বা CTRL + ALT + S টিপে সাধারণ প্রকল্পগুলির সেটিংসে যান
  9. "বিল্ড, এক্সিকিউশন, মোতায়েন"
  10. সংকলনকারী
  11. বিল্ড প্রকল্পটি স্বয়ংক্রিয়ভাবে নির্বাচন করুন
  12. সংরক্ষণ
  13. ডিবাগ মোডে টমক্যাট শুরু করুন

0

আপনি যদি এখনই দেখতে বা প্লে করতে চান এমন মাল্টিপার্ট ফাইলগুলি থাকে তবে সরাসরি টার্গেটফোল্ডারে আপলোড করুন। * (কেবল লেখার অবস্থানটিকে লক্ষ্য ফোল্ডার / স্ট্যাটিক / এ পরিবর্তন করুন)

String yourpath = C\\andSoForth
    yourPath + "\\target\\classes\\static\\uploads\\audiofiles\\"

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

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