JUnit পরীক্ষা চালানোর সময়, IntelliJ IDEA ব্যবহার করে, আমি পাই
আমি কীভাবে এটি সংশোধন করতে পারি?
- এসডিকে ব্যবহার করে 1.7
- মডিউল ভাষার স্তর 1.7
ম্যাভেন বিল্ড ঠিকঠাক কাজ করে। (এজন্যই আমি আইডিইএ কনফিগারেশন ইস্যুতে এটি বিশ্বাস করি)
JUnit পরীক্ষা চালানোর সময়, IntelliJ IDEA ব্যবহার করে, আমি পাই
আমি কীভাবে এটি সংশোধন করতে পারি?
ম্যাভেন বিল্ড ঠিকঠাক কাজ করে। (এজন্যই আমি আইডিইএ কনফিগারেশন ইস্যুতে এটি বিশ্বাস করি)
উত্তর:
সম্ভবত আপনার এখানে ম্যাভেন থেকে ভুল সংকলক বিকল্পগুলি আমদানি করা হয়েছে:
এছাড়াও স্ক্রিনশটটিতে রূপরেখার করা প্রকল্প এবং মডিউল বাইটকোড ( লক্ষ্য ) সংস্করণ সেটিংস পরীক্ষা করুন।
অন্যান্য স্থান যেখানে উত্স ভাষার স্তরটি কনফিগার করা আছে:
ম্যাভেন ডিফল্ট ভাষা স্তর হল 1.5 (5.0), আপনি উপরে স্ক্রিনশট উপর মডিউল ভাষা স্তর হিসাবে এই সংস্করণে দেখতে হবে।
অভ্যন্তরে maven- সংকলক-প্লাগইন কনফিগারেশন ব্যবহার করে এটি পরিবর্তন করা যেতে পারে pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
অথবা
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
ম্যাভেন প্রজেক্টস সরঞ্জাম উইন্ডোতে আপনি মাভেন প্রকল্পটি পুনর্বার করে দেওয়ার পরে ইন্টেলিজ আইডিইএ এই সেটিংটিকে সম্মান করবে :
pom.xml
জাভা সংকলক প্লাগ-ইন কনফিগারেশন জাভা সংস্করণ নির্দিষ্ট করতে পারে যা পরের বার আপনি পম.এক্সএমএল (যদি স্বয়ংক্রিয় রেম্পোর্ট সক্ষম হয়) বা ম্যানুয়ালি প্রজেক্টটি পুনরায় আমদানি করে তবে এই সেটিংটি ওভাররাইড করবে।
ইন্টেলিজজে 13 এবং 14 এর জন্য নীচে আলোচিত মত, তবে সেটিংস / পছন্দসমূহ প্যানেলে একটি অতিরিক্ত স্তর সহ: সেটিংস > বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট > কমপ্লায়ার > জাভা কম্পাইলার ।
ইন্টেলিজজে 13 এবং 14 এ, আপনি আপনার মডিউলে কোনও আলাদা বাইকোড সংস্করণ লক্ষ্য করছেন না তা নিশ্চিত করতে সেটিংস> সংকলক> জাভা সংকলক ইউআই পরীক্ষা করে দেখুন ।
ইন IntelliJ আইডিয়া 14.1 "লক্ষ্য বাইটকোড সংস্করণ" একটি ভিন্ন জায়গায় হয়।
নিম্নলিখিত পরিবর্তনগুলি আমার পক্ষে কাজ করেছে:
ফাইল> সেটিংস ...> বিল্ড, এক্সিকিউশন, স্থাপনা> সংকলক> জাভা সংকলক : টার্গেট বাইটোকোড সংস্করণ 1.5 থেকে 1.8 এ পরিবর্তন করুন
আপনি কি আপনার বিল্ড কনফিগারেশনটি দেখেছেন এটি পছন্দ করা উচিত যদি আপনি ম্যাভেন 3 এবং জেডিকে 7 ব্যবহার করেন
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
আমি এটিতে ছুটে এসেছি এবং ঠিক করাটি ছিল প্রকল্প সেটিংস> মডিউলগুলি> নির্দিষ্ট মডিউল> নির্ভরতা ট্যাবে ক্লিক করতে। আমি লক্ষ্য করেছি যে মডিউল এসডিকে এখনও 1.6 এ সেট করা আছে, আমি এটিকে 1.7 এ পরিবর্তন করেছি এবং এটি কার্যকর হয়েছে।
নিম্নলিখিত পথে প্রকল্পের সংকলক সেটিং ফাইলটি সংশোধন করুন এবং 'লক্ষ্য'টিকে 1.7 এ পরিবর্তন করুন:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
আমি ক্ষেত্রটি ফাঁকা সেট করে সমাধান করেছি:
সেটিংস> সংকলক> জাভা সংকলক> প্রকল্পের বাইকোড সংস্করণ
থান ইন্টেলিজ জেডিকে ডিফল্ট সংস্করণ ব্যবহার করে।
এক মুহূর্ত থেকে অন্য মুহুর্তেও আমি এই ত্রুটিটি স্পষ্ট কারণ ছাড়াই পেয়েছি। আমি সংকলক / মডিউল ইত্যাদিতে সমস্ত ধরণের সেটিংস পরিবর্তন করেছি তবে শেষ পর্যন্ত আমি কেবল মাভেন প্রকল্পটির পুনর্নির্মাণের মাধ্যমে ইন্টেলিজ প্রকল্প পুনরায় তৈরি করেছি এবং সমস্যাটি সমাধান হয়ে গেছে। আমি এই একটি বাগ সংশোধন করা হয় না।
ইন্টেলিজিজ 129.961
আমি ইন্টেলিজ আইডিয়া 14 থেকে v14.1 এ সামান্য আপগ্রেড করার পরে এটিকে আঘাত করেছি। আমার পক্ষে শীর্ষ / প্যারেন্ট পোমের একটি সম্পাদনা পরিবর্তন করতে সহায়তা করেছে এবং তারপরে মাভেনকে পুনরায় আমদানি করতে ক্লিক করুন (এটি যদি স্বয়ংক্রিয় না হয়)।
তবে এটি মডিউল / সমষ্টি / পিতামাতা মডিউল এবং মাভেন -> রেম্পোর্টে ডান ক্লিকের পক্ষে যথেষ্ট।
যদি এটি আপনার গ্রেড.gradle ফাইলে গ্রেডল প্রকল্প হয় তবে নিম্নলিখিত সেটিংসের জন্য অনুসন্ধান করুন:
sourceCompatibility = "xx"
targetCompatibility = "xx"
সমস্ত উপ-প্রকল্পের জন্য, আপনার রুট বিল্ড.gradle ফাইলে, আপনি এটি রাখতে পারেন:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
যদিও আপনি আইডিয়া> সেটিংসে ম্যানুয়ালি ভাষার স্তর নির্ধারণ করতে পারেন, যদি এটি গ্রেডল প্রকল্প হয় তবে আইডিয়া স্বয়ংক্রিয়ভাবে গ্রেডল সেটিংস থেকে আইডিয়া আইএমএল ফাইলগুলি সিঙ্ক্রোনাইজ করে (আইডিয়া 15+ এর সাথে পরীক্ষিত)। গ্রেডল রিফ্রেশ হয়ে গেলে আপনার সমস্ত ম্যানুয়াল পরিবর্তনগুলি ওভাররেড হয়ে যায়।
গ্রেডল ডকুমেন্টেশনের ভিত্তিতে , যদি এগুলি সেট না করা হয়, তবে বর্তমান জেভিএম কনফিগারেশন ব্যবহৃত হয়।
আমি এই ত্রুটিটি চালানোর জন্য আরও একটি উপায় খুঁজে পেয়েছি। আপনি যদি নিজের ডিরেক্টরি কাঠামোটি পুনরায় সংগঠিত করে থাকেন এবং আপনার পোমগুলির মধ্যে একটি পুরানো পিতামাতার দিকে ইঙ্গিত করে যা জাভ্যাকটি আর কনফিগার করে না (কারণ সেই কনফিগারেশনটি মাঝারি স্তরে স্থানান্তরিত হয়েছিল)। এটি ঘটলে শীর্ষ স্তরের ডিফল্ট 1.5 হয় এবং দুর্ব্যবহারকারী নিম্ন স্তরের পোম এটি উত্তরাধিকার সূত্রে প্রাপ্ত হয়।
সুতরাং আপনি যখন এই ত্রুটিটি দেখেন তখন অন্য একটি জিনিস যাচাই করে দেখুন আপনার পম কাঠামোটি আপনার ডিরেক্টরি কাঠামোর সাথে সঠিকভাবে মেলে।
যদি মাভেন বিল্ডটি ঠিকঠাক কাজ করে তবে মাভেন এবং ইন্টেলিজ আইডিইএ প্রকল্পগুলির কাঠামো সিঙ্ক্রোনাইজ করার চেষ্টা করুন।
ইন ম্যাভেন টুল জানালা , রিফ্রেশ বোতামে ক্লিক করুন । এই বোতামটি টিপে, IntelliJ IDEA মাভেন টুল উইন্ডোতে প্রকল্পের কাঠামোটিকে পার্স করে।
মনে রাখবেন যে আপনি ইএপি বিল্ড ব্যবহার করছেন যদি এটি মাভেন সিঙ্ক্রোনাইজেশন বৈশিষ্ট্যটি কখনও কখনও ভেঙে যেতে পারে তবে এটি সাহায্য করবে না।
নিশ্চিত হ'ল ডান অনুপাত নির্বাচন করা হয়েছে। ফাইল> প্রকল্পের কাঠামো
আপনার প্রকল্প নির্বাচন করুন এবং নির্ভরতা ট্যাবে নেভিগেট করুন। ড্রপডাউন থেকে ডান নির্ভরতা নির্বাচন করুন বা নতুন তৈরি করুন।
পূর্ববর্তী সমস্ত সমাধান যদি আপনার পক্ষে কাজ না করে (যা আমার ক্ষেত্রে ছিল), আপনি ইন্টেলিজ কনফিগারেশন ফাইলগুলি মুছতে পারেন:
ইন্টেলিজ পরবর্তীতে নতুনকে পুনরুত্পাদন করবে। তবে, সাবধান থাকুন, এটি প্রজেক্টে তৈরি সমস্ত ইন্টিলিজ কনফিগারেশনও মুছে ফেলবে (যেমন: ডিবাগ মোডের কনফিগারেশন, ...)