ইন্টেলিজ আইডিইএ জাভা ক্লাসগুলি সেভ এ স্বয়ংক্রিয়ভাবে সংকলন করে না


182

গতকাল আমি গ্রহণ থেকে ইন্টেলিজ আইডিইএ স্যুইচ করেছি।

আমি ওয়েবস্পিয়ার সার্ভার 7 এর সাথে জেআরবেলও ব্যবহার করছি।

সবকিছু এখন কিছুটা সূক্ষ্ম কাজ করা হবে, যে ব্যতীত বলে মনে হয় যখন আমি পরিবর্তন একটি জাভা ফাইল, এবং হিট রক্ষা , IntelliJ নেই অনুক্রমে ফাইলটি পুনরায় কম্পাইল, JRebel এটা নিতে জন্য।

Eclipse " বিল্ড অটোমেটিক " বৈশিষ্ট্যটি এই সমস্যার সমাধান করেছে।

IntelliJ ধারণা, আমি হিট আছে CTRL+ + SHIFT+ + 9প্রাসঙ্গিক বর্গ পুনরায় কম্পাইল করতে JRebel এটা নিতে জন্য। যদি দুটি ফাইল জুড়ে পরিবর্তনগুলি করা হয় , তবে আমি তাদের প্রতিটি ও একটিতে এটি করতে হবে এবং যেহেতু ইন্টেলিজি সমস্ত সংরক্ষণ প্রক্রিয়া সংরক্ষণ করে, তাই নিজেই কী পুনরায় রচনা করতে হবে তা জানা খুব শক্ত, যা আমি সত্যিই করতে আগ্রহী নই।

ইন্টেলিজকে নিজে থেকে এটি করার কোনও উপায় নেই ?


11
আপনি শুধু Ctrl+ টিপেন না কেন F9? এটি পুরো প্রকল্পটি তৈরি করবে এবং যদি কেবল দুটি ফাইল পরিবর্তিত হয় তবে সেগুলি পুনর্নির্মাণ করা হবে।
মাবা

2
আমি ভয় পেয়েছিলাম যে এটি সমস্ত পুনর্নির্মাণ করবে। আমি বিশ্বাস করি ডিফল্ট পুনর্গঠনের উপর পরিষ্কার আউটপুট ... তাই সাধারণত এটি ভাল কাজ করে না ...
মিমি

5
এটি নির্মাণের আগে পরিষ্কার হয় না । এটি একটি ইনক্রিমেন্টাল বিল্ড। আপনার ইচ্ছা থাকলে পুনর্নির্মাণের আরও একটি পছন্দ রয়েছে।
মাবা

: এই পরীক্ষা করে দেখুন stackoverflow.com/questions/19596779/...
Radu Toader

উত্তর:


250

আপডেট

ইন্টেলিজ আইডিএ 12+ রিলিজের জন্য আমরা যদি বাহ্যিক সংকলক বিকল্পটি ব্যবহার করি তবে সম্পাদিত উত্সগুলি স্বয়ংক্রিয়ভাবে তৈরি করতে পারি। " কম্পাইলার " সেটিংসের অধীন অবস্থিত " বিল্ড প্রজেক্ট স্বয়ংক্রিয়ভাবে " বিকল্পটি পরীক্ষা করা দরকার কেবলমাত্র :

সংকলক সেটিংস

এছাড়াও, আপনি যদি গরম স্থাপন করতে চান, অ্যাপ্লিকেশনটি চলাকালীন বা আপনি যদি স্প্রিং বুট ডেভলগুলি ব্যবহার করছেন তবে আপনার compiler.automake.allow.when.app.runningরেজিস্ট্রিটিও সক্ষম করা উচিত । এটি আপনার পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সংকলন করবে।

ব্যবহার Ctrl+ + Shift+ + A(অথবা + + Shift+ + Aম্যাক দিকে) টাইপ Registryএকবার রেজিস্ট্রি উইন্ডোজ খোলা থাকা অবস্থায়, সনাক্ত এবং সক্ষম compiler.automake.allow.when.app.running, এখানে দেখুন:

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


12 বছরেরও পুরানো সংস্করণগুলির জন্য, আপনি IDEA স্বয়ংক্রিয়ভাবে সংরক্ষিত ফাইলগুলি সংকলন করতে EclipseMode প্লাগইন ব্যবহার করতে পারেন ।

আরও টিপসের জন্য "Eclipse থেকে IntelliJ IDEA এ স্থানান্তরিত" গাইডটি দেখুন।


10
বিরক্ত লাগছে যে এর জন্য আমাকে একটি প্লাগইন ইনস্টল করতে হবে। আমি এরই মধ্যে গতকাল এবং আজকে ব্যয় করেছি। আমি আশা করি তারা কেবল এটির জন্য একটি বিকল্প তৈরি করতে পারে, আমি মনে করি না যে এই বৈশিষ্ট্যটিতে গ্রহনের কোনও পেটেন্ট রয়েছে, তাই না? এটি স্বয়ংক্রিয়ভাবে সংরক্ষণ হয় সে হিসাবে তৈরি করতে আমি সিটিআরএল + এস-এ পুনরায় তৈরি করতে পারি। আমি কয়েকটি বিকল্প চেষ্টা করব। ধন্যবাদ
মিমি

14
এটি ধীর। এটি খুব ধীর। উন্নতির অনেক জায়গা আছে! আমি এটি ব্যাকগ্রাউন্ডে যা করি তা নয়, তবে একক শ্রেণিতে একটি ছোট পরিবর্তন সংকলন করতে ইন্টেলিজ প্রায় 3-4 সেকেন্ড সময় নেয়। এমনকি "কমপাইল 'স্টার্টকন্ট্রোলআর জাভা" "অর্থ একটি বর্গের জন্য কেবল 3-4 সেকেন্ড সময় লাগে। গ্রহণটি 100 মিলিসেকেন্ডেরও কম সময়ে এটি করে। আমি আবার গ্রহন মোড প্লাগইন পরীক্ষা করব এবং কী নিয়ে যাব তা স্থির করব ..
মিমি

34
"প্রকল্প স্বয়ংক্রিয়ভাবে তৈরি করুন" কেবল তখনই চলমান / ডিবাগিং চলাকালীন কাজ করে
xenoterracide

8
ইন্টেলিজ 2017.1.3 এবং স্প্রিং বুট ডেভলগুলি নিয়ে আমার পক্ষে কাজ করে না।
নিকো ডি ওয়েট

1
ইন্টেলিজ আইডিএএ 2017.3.3, জাভা 9.0.4, স্প্রিং বুট 2.0.0.RC1, স্প্রিং ডেভলসগুলি নিয়ে কাজ করবেন না :(
নু

75

উভয় পদক্ষেপ অনুসরণ করুন :

1 - সংকলক থেকে অটোমাকে সক্ষম করুন

  • প্রেস: ctrl+ + shift+ + A(Mac + + shift+ + A)
  • টাইপ করুন: make project automatically
  • হিট: Enter
  • Make Project automaticallyবৈশিষ্ট্য সক্ষম করুন

2 - অ্যাপ্লিকেশন চলমান থাকলে অটোমেক সক্ষম করুন

  • প্রেস: ctrl+ + shift+ + A(Mac + + shift+ + A)
  • টাইপ করুন: Registry
  • কীটি সন্ধান করুন compiler.automake.allow.when.app.runningএবং এটি সক্ষম করুন বা তার পাশের চেকবক্সটি ক্লিক করুন

দ্রষ্টব্য: এখনই আপনার আবেদন পুনরায় চালু করুন :)

দ্রষ্টব্য: এটি স্প্রিং বুট ডেভলগুলি সহ লাইভ পুনরায় লোডেরও অনুমতি দেয়।


2
নিখুঁত, আমি যা খুঁজছিলাম ঠিক
এটিই

3
এটি আমার জন্য বসন্ত-বুট-ডেভলগুলি এবং ইন্টেলিজ আইডিইএ 2016.2.5
জায়ারো ডিগ্রিয়াজ

2
ঠিক আছে, সুতরাং এটি ইন্টেলিজজে 2017.1.3 এ কাজ করছে বলে মনে হচ্ছে, আমি বিকল্প 2 ব্যবহার করেছি কারণ এটি একটি যা বসন্ত বুট ডেভলগুলি প্রয়োজন needs
নিকো ডি ওয়েট

1
ভাল কাজ করেছে তবে জেআরবেলে পুনরায় লোড হতে 4-5 সেকেন্ড সময় লাগে। কোন পথে?
ব্যবহারকারী3184974

1
আমি মনে করি না উপরের আইটেমগুলি 1 এবং 2 টি "বিকল্পগুলি", তবে পদক্ষেপগুলি। আপনার দুটোই করা দরকার।
থমাস কার্লিসেল

67

সতর্কতামূলক

ইলিপস মোড প্লাগ-ইন অপ্রচলিত এবং সাম্প্রতিক আইডিইএ 12+ বিল্ডগুলির সাথে সামঞ্জস্য নয়। আপনি যদি এটি ইনস্টল করেন, আইডিই প্রতিটি ফাইলের পরিবর্তনে স্তব্ধ হয়ে যাবে এবং অত্যন্ত ধীর গতির প্রতিক্রিয়া জানাবে।


ইন্টেলিজ আইডিইএ স্বয়ংক্রিয় বিল্ড ব্যবহার করে না, এটি উড়তে ত্রুটিগুলি সনাক্ত করে, সংকলকের মাধ্যমে নয়। Eclipse মোডের অনুরূপ আইডিইএ 12 তে উপলব্ধ হবে :

প্রকল্পটি স্বয়ংক্রিয়ভাবে তৈরি করুন

ব্যবহার Build| Make, এটি ইনক্রিমেন্টাল মেক প্রক্রিয়াটি আহ্বান করে যা কেবলমাত্র পরিবর্তিত এবং নির্ভরযোগ্য ফাইলগুলি সংকলন করে (এটি খুব দ্রুত)।

এছাড়াও একটি FAQ এন্ট্রি রয়েছে যা সাহায্য করতে পারে।

স্বয়ংক্রিয় মেক বৈশিষ্ট্যে আপডেট : রান / ডিবাগ কনফিগারেশন চলাকালীন, Make project automaticallyকোনও প্রভাব ফেলে না। ডিস্কে ক্লাস কেবলমাত্র Build| এ পরিবর্তন হবে change Make। ডিস্কে আমাদের মতামত অনুসারে এটি মূল নকশার সিদ্ধান্ত সর্বদা ব্যবহারকারীর নিয়ন্ত্রণে থাকা উচিত। অটোমেটিক মেকিং ইক্লিপ বৈশিষ্ট্যটির অনুলিপি নয়, এটি ভিন্নভাবে কাজ করে এবং এর মূল উদ্দেশ্য ক্লাসগুলি সত্যই প্রয়োজন হয় তাদের প্রস্তুত হওয়ার জন্য অপেক্ষা করা সময় বাঁচানো (অ্যাপ বা পরীক্ষাগুলি চালানোর আগে)। স্বয়ংক্রিয়ভাবে মেক এই স্পষ্ট সংকলনটি প্রতিস্থাপন করে না যা আপনার এখনও এই প্রশ্নে বর্ণিত মামলার মতো ট্রিগার করতে হবে। আপনি যদি আলাদা আচরণের সন্ধান করে থাকেন তবে উপরের FAQ এ লিঙ্কযুক্ত EclipseMode প্লাগ-ইন করা আরও ভাল পছন্দ হবে।


হ্যাঁ, আমি এটি আগে দেখেছি, তবে পপআপ এবং সমস্ত কিছু দিয়ে এটিকে খুব ধীর বলে খারিজ করে দিয়েছি। ভেবেছিলাম এটি অন্য কিছুর জন্য। আমি হয়ত চেষ্টা করে দেখতে পারি একটি সিটিআরএল + 9 বিরক্তিকর, তবে আমি অনুমান করি যে এটি স্বয়ংক্রিয়ভাবে সাশ্রয় হয় সেজন্য আমি CTRL + S এ পুনরায় তৈরি করতে পারব।
মিমি

আপডেটের জন্য ধন্যবাদ. আমি ইলিপস মোড প্লাগইন ইনস্টল করেছি। সেই কথোপকথনটি রাখবেন না ... ওও .. ইন্টেলিজ 12 ... ভাল, আপনি যে উন্নতি করছেন তা ভাল। ইন্টেলিজ 12 কি বাইরে?
মিমি

3
আমি কয়েক দিনের জন্য 12 চেষ্টা করে যাচ্ছি। বাহ্যিক বিল্ড -> তৈরি ব্যবহারটি স্বয়ংক্রিয়ভাবে কোনও ক্রিয়াকলাপ চালায় না। কিছুই সুখী না। আমি যখন গ্রহপদ মোড প্লাগইন ব্যবহার করি (সেটিংস থেকে এটি সক্ষম / অক্ষম করুন) যা ভাল কাজ করে, তবে যখন আমি গ্রহন মোড প্লাগইনটি অক্ষম করি এবং "বাহ্যিক বিল্ড ব্যবহার করুন -> স্বয়ংক্রিয়ভাবে তৈরি" সক্ষম করি তখন সম্পাদনা এবং সংরক্ষণে কিছুই ঘটে না ... এতে কোনও ধারণা নেই কেন?
মিমি

2
@ ক্র্যাজি কোডার আমি কেবল এই এবং জে রেবেলে ফিরে এসেছি। এটি খুব ধীর। উন্নতির অনেক জায়গা আছে! আমি এটি ব্যাকগ্রাউন্ডে যা করি তা নয়, তবে একক শ্রেণিতে একটি ছোট পরিবর্তন সংকলন করতে ইন্টেলিজ প্রায় 3-4 সেকেন্ড সময় নেয়। এমনকি "কমপাইল 'স্টার্টকন্ট্রোলআর জাভা" "অর্থ একটি বর্গের জন্য কেবল 3-4 সেকেন্ড সময় লাগে। গ্রহণটি 100 মিলিসেকেন্ডেরও কম সময়ে এটি করে। আমি আবার প্লাগইনটি পরীক্ষা করব এবং কী দিয়ে যাব তা স্থির করব ..
মিমি

1
@ সেক্রেট সার্ভিস ট্যাব আচরণ পরামর্শগুলি youtrack.jetbrains.com/issues/IDEA এ স্বাগত । পিনযুক্ত ট্যাবগুলি সম্পর্কে তাদের ইতিমধ্যে বেশ কয়েকটি উন্মুক্ত সমস্যা রয়েছে এবং সেগুলি বন্ধ হতে আটকাচ্ছে।
ক্রেজি কোডার

38

আপনি কীম্যাপ করতে পারেন ctrl+s সংরক্ষণ এবং এক ধাপে সংকলন করতে । কীম্যাপ সেটিংসে যান এবং অনুসন্ধান করুন Compile


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

আমার জন্য কাজ করেনি, সংকলনের জন্য সিটিআরএল + এস নির্ধারণ করা আমার সার্ভারটি পুনরায় আরম্ভ করবে না ডিবাগ বোতামটি দিয়ে
দিমিত্রি কোপ্রিভা

এটি আমার জন্য কাজ করে, ইন্টেলিজ 2018.2। এটি বিল্ড প্রকল্পের জন্য অনুসন্ধান করা উচিত
নিও ফ্যাম

18

উভয়কেই 1 ক্লিকের প্রয়োজন হওয়ায় আসলে কোনও পার্থক্য নেই :

  • গ্রহন : ম্যানুয়াল সংরক্ষণ, স্বয়ংক্রিয়-সংকলন।
  • ইন্টেলিজ : স্বয়ং সংরক্ষণ করুন, ম্যানুয়াল সংকলন।

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


2
ইন্টেলিজের অভিজ্ঞতা উন্নত করার উপায় রয়েছে: আপনি ব্রাউজারে স্যুইচ করার সময় সংরক্ষণ এবং সংকলন করুন
রুশ

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

1
@ ম্যাক্স, ইন্টেলিজি কমিট করার সময় এই ক্রিয়াগুলি পরিচালনা করে (যা আমার ব্যক্তিগত রুচি সবচেয়ে ভাল মুহূর্ত)। কিছু ক্ষেত্রে এটি কোডিং শৈলীর সমস্যাগুলি সরাসরি সম্পাদককে (যেমন পাইথনের জন্য পিইপি 8 কনফরমেশন) হাইলাইট করে।
andruso

2
কোনও আইডিই আমার জন্য অন্যরকম কাজ করে এবং অন্যটি আমার জীবনকে আরও কঠিন করে তোলে, এটি বেচাকেনার পক্ষে ভাল নয়।
জোনাথন

1
@ জোনাথন ব্যবহারযোগ্যতার উন্নতি করতে ব্যবহারকারীর জন্য প্রায়শই পুরানো এবং প্রায়শই অপ্রয়োজনীয় অভ্যাস বাদ দেওয়া দরকার।
andruso

17

আমি এক ধাপে সংরক্ষণ এবং সংকলন করতে একটি ম্যাক্রো রেকর্ডিং শেষ করেছি এবং Ctrl+sএটিতে কী ম্যাপ ।


5
@ সেক্রেট সার্ভিস সবার জন্য কাজ করতে পারে না, কারণ যখন একই শর্টকাটে একাধিক ক্রিয়া ম্যাপ করা হয় তখন ক্রমের ক্রম সংজ্ঞায়িত হয় না।
সেলোস

13

আমি ম্যাক্রো ব্যবহার করে এটি সমাধান করতে সক্ষম হয়েছি।

আমি একটি ম্যাক্রো রেকর্ড করা শুরু করেছি:

  • সম্পাদনা - ম্যাক্রো - ম্যাক্রো রেকর্ডিং শুরু করুন ক্লিক করুন
  • ফাইল ক্লিক করুন - সমস্ত সংরক্ষণ করুন
  • তৈরি করুন - প্রকল্পটি ক্লিক করুন
  • সম্পাদনা - ম্যাক্রো - ম্যাক্রো রেকর্ডিং বন্ধ করুন এ ক্লিক করুন

এটিকে দরকারী কিছু হিসাবে নাম দিন, "SaveAndMake"।

এখন কেবল সমস্ত কী-বাইন্ডিং সংরক্ষণ করুন এবং আপনার ম্যাক্রোর সাথে একই কী-বাইন্ডিং যুক্ত করুন!

সুতরাং এখন, যতবার আমি সংরক্ষণ করি, এটি সংরক্ষণ করে এবং একটি নোংরা সংকলন তৈরি করে এবং জেরিবেল এখন সমস্ত পরিবর্তন সঠিকভাবে সনাক্ত করে।


বিদ্যমানগুলি সংরক্ষণ করে প্রতিস্থাপনের পরিবর্তে ম্যাক্রোটিকে একটি ভিন্ন কী-বাইন্ডিং দেওয়ার পরামর্শ দিবে - তবে এটি কেবল সমানভাবে বিষয়গত being
আর্সেল্ডন

ধন্যবাদ। যেহেতু একটি সাধারণ "বিল্ড" (অন্যান্য উত্তরগুলির দ্বারা প্রস্তাবিত) আমার পক্ষেও পর্যাপ্ত নয় আমি প্রতিবার পুনঃনির্মাণটি সংরক্ষণ করতে এই সমাধানটি ব্যবহার করি। আমাকে প্রচুর সম্পদ ব্যয় করেও আমাকে গ্রহগ্রহের অনুভূতি ফিরিয়ে দেয় ...
বোরিস

5

এটি সক্ষম করতে দয়া করে এই পদক্ষেপগুলি সাবধানে অনুসরণ করুন।

1) এসবি ভি 1.3 দিয়ে স্প্রিং বুট প্রকল্প তৈরি করুন এবং নির্ভরতাগুলিতে "ডিভলটুলস" (1 *) যুক্ত করুন

2) সহায়তা প্রার্থনা করুন -> অ্যাকশন সন্ধান করুন ... এবং "অটোমেক" এর জন্য ডায়ালগ অনুসন্ধানে "রেজিস্ট্রি" টাইপ করুন এবং " compiler.automake.allow.when.app.running " এন্ট্রি সক্ষম করুন , ডায়ালগটি বন্ধ করুন

3) সেটিংস-> বিল্ড, এক্সিকিউশন, মোতায়েন-> সংকলক "স্বয়ংক্রিয়ভাবে প্রকল্প তৈরি করুন" তে পটভূমি সংকলন সক্ষম করুন

৪) স্প্রিং বুট রান কনফিগার করুন, সবকিছু সঠিকভাবে কনফিগার করা থাকলে আপনার সতর্কতা বার্তা পাওয়া উচিত

5) আপনার অ্যাপ্লিকেশন চালান, ফ্লাইট অন ফ্লাইটে

এই সমস্যা হিসাবে মন্তব্য হিসাবে আপনার অভিজ্ঞতা এবং সমস্যা রিপোর্ট করুন।

আরো তথ্যের জন্য এখানে ক্লিক করুন


এটি এখনও "অগ্রগতি" হিসাবে চিহ্নিত হয়েছে, এবং আমার পক্ষে কাজ করে না।
জাগারিডো

2

আমার ম্যভেন প্রকল্পে আমার পক্ষে কাজ করা একমাত্র যা এর দ্বারা প্রভাবিত হয়েছিল তা হ'ল আমার ইউনিট পরীক্ষাগুলির রান কনফিগারেশনে একটি "পরীক্ষা-সংকলন" লক্ষ্য যুক্ত করা। অবিশ্বাস্যভাবে আনাড়ি সমাধান, কিন্তু এটি কার্যকর।

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


কমপক্ষে এটি কাজ করে: ডি তবে হ্যাঁ, এই সমস্যার উত্স খুঁজে পাওয়া আরও ভাল
আনিন্ডিস

2

ইন্টেলিজ চুপচাপ ব্যর্থ হয় যখন এটি অন্য মডিউলে সংকলনের সমস্যাটির মুখোমুখি হয় এবং তারপরে স্বয়ংক্রিয় বিল্ড সম্পাদন করা হয় না। সুতরাং আপনার Problemsউইন্ডোটি পরীক্ষা করুন


1

আমারো একই ইস্যু ছিল. আমি "পাওয়ার সেভ মোড" ব্যবহার করছিলাম যা ক্রমবর্ধমান সংকলন করা এবং সংকলনের ত্রুটিগুলি দেখানো থেকে বিরত থাকে।


আইডন্ট জানেন কেন এই উত্তরটি কেন হ্রাস পেয়েছে, এটিও প্রশ্নের উত্তর দেয়, আমার জন্য একই ছিল - "পাওয়ার সেভ মোড", যদিও এটি সেটিংসে লেখা ছিল, তবে এই সক্ষম অটো সংকলনের সাথে কাজ করে না।
নেরিয়াস জক

1

রিফর্ম্যাট এবং কম্পাইল প্লাগইন ব্যবহার করুন (আলেকজান্দ্রে ডুব্রেইল এর সেভ অ্যাকশন প্লাগইন দ্বারা অনুপ্রাণিত):

https://plugins.jetbrains.com/plugin/8231?pr=idea_ce

এই মুহুর্তে আমি কেবল একটি জার ফাইল দিচ্ছি, তবে এটি কোডের সর্বাধিক গুরুত্বপূর্ণ অংশ:

private final static Set<Document> documentsToProcess = new HashSet<Document>();
private static VirtualFile[] fileToCompile = VirtualFile.EMPTY_ARRAY;

// The plugin extends FileDocumentManagerAdapter.
// beforeDocumentSaving calls reformatAndCompile
private static void reformatAndCompile(
        @NotNull final Project project,
        @NotNull final Document document,
        @NotNull final PsiFile psiFile) {
    documentsToProcess.add(document);
    if (storage.isEnabled(Action.compileFile) && isDocumentActive(project, document)) {
        fileToCompile = isFileCompilable(project, psiFile.getVirtualFile());
    }
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            if (documentsToProcess.contains(document)) {
                documentsToProcess.remove(document);
                if (storage.isEnabled(Action.optimizeImports)
                        || storage.isEnabled(Action.reformatCode)) {
                    CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() {
                        @Override
                        public void run() {
                            if (storage.isEnabled(Action.optimizeImports)) {
                                new OptimizeImportsProcessor(project, psiFile)
                                    .run();
                            }
                            if (storage.isEnabled(Action.reformatCode)) {
                                new ReformatCodeProcessor(
                                        project,
                                        psiFile,
                                        null,
                                        ChangeListManager
                                            .getInstance(project)
                                            .getChange(psiFile.getVirtualFile()) != null)
                                                .run();
                            }
                            ApplicationManager.getApplication().runWriteAction(new Runnable() {
                                @Override
                                public void run() {
                                    CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement(psiFile);
                                }
                            });
                        }
                    });
                }
            }

            if (fileToCompile.length > 0) {
                if (documentsToProcess.isEmpty()) {
                    compileFile(project, fileToCompile);
                    fileToCompile = VirtualFile.EMPTY_ARRAY;
                }
            } else if (storage.isEnabled(Action.makeProject)) {
                if (documentsToProcess.isEmpty()) {
                    makeProject(project);
                }
            } else {
                saveFile(project, document, psiFile.getVirtualFile());
            }
        }
    }, project.getDisposed());
}

private static void makeProject(@NotNull final Project project) {
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            CompilerManager.getInstance(project).make(null);
        }
    }, project.getDisposed());
}

private static void compileFile(
        @NotNull final Project project,
        @NotNull final VirtualFile[] files) {
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            CompilerManager.getInstance(project).compile(files, null);
        }
    }, project.getDisposed());
}

private static void saveFile(
        @NotNull final Project project,
        @NotNull final Document document,
        @NotNull final VirtualFile file) {
    ApplicationManager.getApplication().invokeLater(new Runnable() {
        @Override
        public void run() {
            final FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
            if (fileDocumentManager.isFileModified(file)) {
                fileDocumentManager.saveDocument(document);
            }
        }
    }, project.getDisposed());
}

2
কেন কেউ কিছু এলোমেলো কোড ডাউনলোড করে এটি চালাবে?
অঙ্কিত

@ ড্রু: পর্যালোচনার জন্য সবেমাত্র এটি জেটব্রেইনসে আপলোড করা হয়েছে। তবে আপনি যদি
ভৌতিক

sbmpost, আমি কেবল দেখিয়ে দিচ্ছি যে কেন কেউ কেউ (যেটি আমি করিনি) ডাউনভোট করে, উত্তর হিসাবে উত্তর হিসাবে পতাকাঙ্কিত করে এবং এটি মুছে ফেলা হবে।
ড্রু

যদি এটি কোড হয় তবে আপনি পাঠ্যে পোস্ট করতে পারেন, এটি দুর্দান্ত। পারবে তুমি? এটি একটি কোড সাইট।
ড্রয়

1
@ ড্রু: জারের বিষয়ে নোট যুক্ত করে কোডে আরও কিছু প্রসঙ্গ যুক্ত করা হয়েছে। এটি উচ্চ স্তরের বলে মনে হতে পারে তবে আপনি যদি ফাইলডোকমেন্ট ম্যানেজার অ্যাডাপ্টার থেকে প্রসারিত করেন এবং কোডটি যুক্ত করেন তবে আপনার (প্রায়) একটি সংকলন রিফর্ম্যাটএন্ডকম্পাইল ক্লাস হবে।
sbmpost

1

আপনার রান / ডিবাগ কনফিগারেশনটি সম্পাদনা করুন যাতে লঞ্চ করার আগে বিল্ড বিকল্পটি নির্বাচন করা হয়

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

বিল্ড অপশন নির্বাচন করার পরে

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

আমার জেবেভে টেস্ট স্যুটটিতে কাজ করার সময় উপরের সমাধানটি আমার পক্ষে কাজ করেছিল


এটি দুর্দান্ত, তবে প্রশ্নটি সংরক্ষণের ক্ষেত্রে স্বয়ংক্রিয়ভাবে সংকলনের আশেপাশে ছিল, কোনও পরীক্ষা চালানোর মতো কিছু করার আগে, কাস্টম কমান্ড ব্যবহার করে আবার স্পষ্টতা সংকলন না করে,
কিসনা

1

আমার প্রকল্প কাঠামোয় একটি অপ্রয়োজনীয় মডিউল থাকার কারণে এটি আমার পক্ষে কাজ করছে না। আমার ধারণা, অন্যান্য মডিউল ব্যবহার করে পরীক্ষাগুলি কার্যকর করা হয়েছিল।

আমি জানি না এটি কীভাবে শেষ হয়েছিল তবে এটি সরানো সমস্যার সমাধান করেছে।

আপনার রান / ডিবাগ সেটিংস স্বয়ংক্রিয় সংরক্ষণের মাধ্যমে আপনি যে মডিউলটি তৈরি করছেন তা ব্যবহার করছে তা নিশ্চিত করুন।

যেমন: মডিউলটি দেখুন

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

আপনি প্রকল্পের কাঠামো - মডিউলগুলিতে মডিউলগুলি পরিবর্তন করতে পারেন

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


1

আমারো একই ইস্যু ছিল. আমি মনে করি আপনার ক্লাসটি সংকলন করা যায় কি না তা পরীক্ষা করা উপযুক্ত হবে। পুনরায় কম্পাইল করতে ক্লিক করুন (ডিফল্টরূপে Ctrl + Shift + F9)। যদি এটি কাজ না করে থাকে তবে আপনাকে কেন এটি সংকলন করছে তা তদন্ত করতে হবে।

আমার ক্ষেত্রে কোডটি অটোমোপলিং করা হয়নি কারণ সংকলনের সাথে লুকানো ত্রুটি ছিল (সেগুলিতে লগগুলিতে কোথাও প্রদর্শিত হয় নি এবং মাভেন ক্লিন-ইনস্টল কাজ করছে)। মূল কারণটি ভুল ছিল প্রকল্পের কাঠামো -> মডিউল কনফিগারেশন, সুতরাং ইন্টেলিজ আইডিয়া এই কনফিগারেশন অনুযায়ী এটি তৈরি করতে সক্ষম হয় নি।


1

আমি একই সমস্যা এবং intellij একটা সমস্যা ফাইল আইকন তাই ছিল, আমি মুছে.idea ফোল্ডার এবং পুনরায় আমদানি প্রকল্পের আমার সমস্যা সমাধান।


0

আমি ত্রুটি পাচ্ছিলাম: কিছু জারগুলি ক্লাসপথে নেই o সুতরাং আমি কেবল দূষিত জারটি মুছে ফেলছি এবং পদক্ষেপের নীচে পারফর্ম করব

1.Project >  Setting>Build,Execution,Deployment>Compiler>check build project automatically
2.CTRL+SHIFT+A find/search **registry** --Check for below param
compiler.automake.allow.when.app.running
compiler.automake.trigger.delay=500---According to ur requirement
3.Add devtool in pom.xml
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
4.Build ,If found any probelm while building ,saying some jar in not in class path.Just delete the corrupted jar
and re-build the project angain after sync with maven lib

-1

বিদ্যমান উত্তরের বিষয়ে মন্তব্য করার জন্য পর্যাপ্ত পয়েন্ট নয়, তবে উপরের কিছু লোকের মতো, আমি আমদানি / ফর্ম্যাট / সেভএল / ফাস্টআরেলোড (এফ 9) / সিঙ্ক্রোনাইজ করার জন্য কেবল একটি ম্যাক্রো এবং কী ম্যাপ যুক্ত করেছি

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

প্রক্রিয়াটি গ্রহণের চেয়ে ধীর - এবং বাহ্যিক ফাইল রিফ্রেশের জন্য প্রায়শই একাধিকবার কমান্ড চালাতে হয় - তবে মনে করুন আমি এটির সাথে থাকতে পারি।

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