প্ল্যাটফর্ম: ইন্টেলিজি কমিউনিটি সংস্করণ 10.0.3
এসডিকে: jdk1.6.0_21
ওএস: উইন্ডোজ 7
সুতরাং ইন্টেলিজিজের সাথে আমার এক অদ্ভুত পরিস্থিতি রয়েছে যা আমাকে পুরোপুরি স্ট্যাম্পড করেছে। আমি একটি মাভেন প্রকল্প সেটআপ করেছি এবং pom.xML ফাইলে নির্ভরতা হিসাবে log4j যুক্ত করি add আইডিইএ পরিদর্শনগুলি সূক্ষ্মভাবে চলে এবং আমার ইউনিট পরীক্ষা করে সমস্ত সংকলন করে চালিত হয়।
আমি তারপরে mvn ইনস্টল: ইনস্টল-ফাইলটি ব্যবহার করে স্থানীয় স্থানীয় মভেন রিপোজিটরিতে হানিসসফ্টের জেমিম লাইব্রেরি যুক্ত করেছি।
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
মাভেন আমার স্থানীয় সংগ্রহস্থলে জার ফাইলটি ঠিকঠাকভাবে ইনস্টল করেছেন।
আমি তখন ইন্টেলিজির সেটিংস => মাভেন => সংগ্রহস্থল পরিষেবাদিতে গিয়েছিলাম এবং আমার স্থানীয় সংগ্রহস্থল আপডেট করেছিলাম (যাতে ইন্টেলিজি পুনরায় সংগ্রহস্থলের সামগ্রীগুলি পুনর্নির্মাণ করতে পারে)।
অবশেষে, আমি আমার pom.xML ফাইলটিতে নিম্নলিখিত নির্ভরতা যুক্ত করেছি (লগ 4j নির্ভরতার ঠিক উপরে)।
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
আমি এখন নিম্নলিখিত হিসাবে একটি নতুন ক্লাস তৈরি:
package com.stackoverflow.question;
import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
এখন অদ্ভুততার জন্য। ইন্টেলিজির অভিপ্রায় প্রক্রিয়াটি ম্যাভেন পম ফাইলে লগার আমদানিটি ঠিকঠাক করে তুলে ধরে izes যাইহোক, hunnysoft আমদানির সব জন্য এটা জানায়: "ক্যান সমাধানে প্রতীক 'ByteString / ফিল্ড / FieldBody' না", কিন্তু বিল্ড => কম্পাইল 'StackOverflowQuestion.java' প্রনয়ন সঠিকভাবে সবকিছু এবং ইউনিট পরীক্ষা আমি এই শ্রেণীর জন্য তৈরি জরিমানা রান (যদিও উদ্দেশ্যগুলি কলকে () এটিও একটি সমস্যা ক্ষেত্র হিসাবে চিহ্নিত করে) চিহ্নিত করে।
সুতরাং কোথাও, কোনওভাবে ইন্টেলিজজে উদ্দেশ্য সাবসিস্টেমের জন্য jmime.jar ফাইলটিকে উপেক্ষা করা হচ্ছে। আমি বিভ্রান্ত কারণ লগ 4 জে নির্ভরতা সূক্ষ্মভাবে কাজ করে এবং সবকিছু সংকলন করে সূক্ষ্মভাবে চলে। এফ 12 ("ঘোষণায় যান") লগার আমদানিতে কাজ করে তবে সমস্ত জিমাইম আমদানিতে বিরতি দেয়।
ওহ, অন্য একটি জিনিস, আমি যদি "প্রকল্পগুলি" উইন্ডোতে 'প্যাকেজগুলি' ভিউতে যাই তবে "com.hunnysoft.jmime" প্যাকেজটি উপস্থিত হয় এবং আমি "লাইব্রেরি" এর অধীনে উপরের কোড স্নিপেটে আমদানি করা সমস্ত শ্রেণি দেখতে পাচ্ছি । Pom.xML ফাইল থেকে উপরোক্ত নির্ভরতা অপসারণ করার ফলে এই প্যাকেজটি অদৃশ্য হয়ে যায় এবং সংকলনটি ভেঙে যায়।
দেখা যাচ্ছে যে পরিদর্শনটির ক্লাসপথটি ভেঙে গেছে, তবে সেটিংস => ইনটেনশনস | এ কোথাও এর জন্য কোনও সেটিংস বলে মনে হচ্ছে না | সংকলক অঞ্চলগুলি (আমি এ জাতীয় কোনও সেটিংস আশা করিনি এমন নয়, আমি বিশ্বাস করি যে আইডিইএর ইতিমধ্যে পম ফাইল এবং জেডিকে ভিত্তিক সঠিক ক্লাসপাথটি জানা উচিত)।
চূড়ান্ত পরীক্ষা হিসাবে আমি একটি ব্র্যান্ড নিউ স্ট্যান্ডার্ড জে 2 এসই অ্যাপ্লিকেশন প্রকল্প তৈরি করেছি (ম্যাভেন ব্যবহার না করে) এবং এর লাইব্রেরি হিসাবে প্রকল্পে সরাসরি jmime.jar ফাইল যুক্ত করেছি। আমি এই নতুন প্রকল্পে উপরে বর্ণিত ঠিক একই সমস্যাগুলিতে চলে আসছি।
এখানে jmime জার ফাইল থেকে MANIFEST.MF।
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
আমি এই জার ফাইলটিতে অস্বাভাবিক কিছু দেখতে পাচ্ছি না।
আমার সর্বোত্তম অনুমান যে সম্ভবত সমস্যাটি একটি নিখোঁজ নির্ভরতা সমস্যা হতে পারে। তবে এএফআইএইচএম জিমিমের নিজেকে অন্তর্ভুক্ত থাকার কথা (জার্নালিজার কিছু নিয়ে আসে না, তবে আমি নিশ্চিত নই যে কোনও নির্ভরতা জারটি অনুপস্থিত থাকলে এটি কী হবে)।
তো, কারও কোনও আইডিইএ আছে?