ইন্টেলিজ আইডিয়া দিয়ে কীভাবে একটি ডিভেন গোল করবেন?


101

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

আমি ওএস এক্স 10.8 এবং আইডিইএ 12.0.2 ব্যবহার করছি।

সম্পাদনা: লক্ষ্য

আমি https://github.com/searls/jasmine-maven-plugin- এর জন্য কাস্টম বিশেষ রুনার লিখেছি - তবে, $ চশমা empty খালি থাকে। তাই আমি দেখার চেষ্টা করি কোন ফাইলটি আসলে লোড হয়।


4
ডিবেগ একটি ম্যাভেন গোল ? কি এই খোলামেলা লক্ষ্য ? আপনি কি অর্জন করতে চান? এবং আপনার আসল সমস্যা কি?
অ্যালোনসো ডোমিংয়েজ

ম্যাভেন গোলের সাথে আমার অর্থ জুঁই: পরীক্ষা, বা জুঁই: বিডিডি। আমি যতদূর দেখেছি, প্রতিটি মোজোকে অবশ্যই একটি নির্বাহ () পদ্ধতি প্রয়োগ করতে হবে যা আমি ডিবাগ করতে চাই। তবে, যেহেতু আইডিইএ থেকে আমার জারে অ্যাক্সেস নেই, তাই আমি ব্রেকপয়েন্টটি সেট করতে পারি না।
rweng

উত্তর:


193

এটি নির্ধারণ:

  1. কমান্ড লাইন থেকে, mvnDebugপরিবর্তে এর চেয়ে বড় লক্ষ্য চালান mvn। যেমনmvnDebug clean
  2. আপনি ইন্টেলিজজে ডিবাগ করতে চান এমন ম্যাগেন প্লাগইনের উত্সটি খুলুন এবং একটি ব্রেকপয়েন্ট সেট করুন
  3. আইডিইএতে একটি Remoteকনফিগারেশন যুক্ত করুন।
    1. সেটিংসের অধীনে, পরিবহন সেট করুন: সকেট, ডিবাগার মোড: সংযুক্ত করুন, হোস্ট: লোকালহোস্ট, পোর্ট: 8000 (এমভিএনডিবাগের ডিফল্ট পোর্ট)।
  4. ডিবাগ মোডে কনফিগারেশন চালান। এটি ওয়েটিং mvnDebug jvm এর সাথে সংযুক্ত হওয়া উচিত।

4
আপনি কীভাবে ইন্টেলিজে মাভেন প্লাগইনটির উত্স খুলবেন?
CorayThan

আমি মনে করি আমি এটি সঠিক সংস্করণে গিথুব থেকে ক্লোন করেছি। বাকিগুলি স্বয়ংক্রিয়ভাবে ঘটেছিল।
রবিং

4
যদি আমি পরীক্ষাগুলি চালাতে চাই তবে mvn test -Dtest=com.example.MyTest(আমার পরীক্ষার
কেসটি কেবলমাত্র মাভেনের

4
এটি পাওয়া: ইন stackoverflow.com/q/6573289/1143126 , এই মূলত প্রশ্ন আসতে জিজ্ঞাসা
RobertG

বিশেষত, নিশ্চিত ফায়ার
জেজে ব্রাউন

41

খুব সহজ. আমি ইন্টেলজ আইডিয়া 15.0.4 ব্যবহার করছি

  1. আপনার মাভেন প্লাগইনে ব্রেকপয়েন্টটি সেট করুন
  2. "ম্যাভেন প্রজেক্টস" ট্যাগটিতে এই প্রকল্পে ডাইনিতে যান আপনার ম্যাভেন প্লাগইনটি ব্যবহার করছেন।
  3. "প্লাগইনস" এ আপনার প্লাগইনটি সন্ধান করুন এবং লক্ষ্য পেরিয়ে ডান ক্লিক করুন এবং ডিবাগ করুন

এখানে একটি স্ক্রিন শট হয়:

স্ক্রিনশট


4
যদিও এই উত্তরের একটি নেতিবাচক স্কোর রয়েছে, তবে এটি আমার যে সমস্যাটি ছিল তা সমাধান করতে সহায়তা করেছিল (কীভাবে ইন্টেলিজজে মাভেন-ভিত্তিক প্রকল্পটি ডিবাগ করা যায়) এবং যখন "গুগলিং" ইস্যুটি আমাকে এই পৃষ্ঠায় নিয়ে গেছে।
gbmhunter 21

আপনাকে ধন্যবাদ স্যার, আপনার উত্তরটি আমাকে পরিকল্পনার সময় কীভাবে স্বয়ংক্রিয়ভাবে ম্যাভেন প্লাগইনগুলি ব্যবহার করতে পারে তা বুঝতে সাহায্য করেছিল
আনাতোলি ইয়াকিমচুক

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

4
"আপনার ম্যাভেন প্লাগইনে ব্রেকপয়েন্টটি সেট করুন" আমি নিশ্চিত না যে এর প্রকৃত অর্থ কী? এটি নিজেই জাভা ক্লাসে ব্রেকপয়েন্ট লাগানোর চেয়ে আলাদা কি?
অমলগোভিনাস

"আপনার ম্যাভেন প্লাগইনে ব্রেকপয়েন্টটি সেট করুন" এর অর্থ আপনার ম্যাভেন প্লাগইন শ্রেণিতে ব্রেকপয়েন্ট
রাখুন

17

পুরানো প্রশ্ন, তবে আমার একই চাহিদা ছিল এবং এটি কাজ করতে আমার কিছুটা সময় নিয়েছিল। আশা করি কাউকে সাহায্য করতে পারেন।

পরীক্ষার ডিবাগিং ব্যবহারের জন্য:

mvn <goal> -Dmaven.surefire.debug 

বা

mvn <goal> -Dmaven.failsafe.debug

যখন নির্বাহটি থামে এবং 50000 (ডিফল্ট) ঠিকানায় সকেট শুনতে পান আপনি আপনার কনফিগার করা দূরবর্তী ডিবাগারটি চালান।

কীভাবে এটি কনফিগার করবেন:

চালান -> কনফিগারেশন সম্পাদনা করুন -> দূরবর্তী পরিবহন: সকেট ডিবাগার মোড: পোর্ট সংযুক্ত করুন: 5005 (ডিফল্ট)

-> সংরক্ষণ করুন।


10

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


4
এটি বিন্দু করুন, এবং এমভিএন ব্যবহারের পরিবর্তে: এমভিএনডিবুগ ..., তারপরে 8000 পোর্টে ইন্টেলিজে একটি রিমোট ডিবাগ রানার তৈরি করুন
ব্যবহারকারী 8515155

এটি 1000x! আমি একটি তৃতীয় পক্ষের প্লাগইনটি ডিবাগ করার চেষ্টা করছিলাম এবং এটিকে একটি সাধারণ মাভেন নির্ভরতা হিসাবে যুক্ত করার অর্থ হ'ল আমি সহজেই উত্স কোডটি ডাউনলোড করতে পারতাম, যে শ্রেণীর সমস্যাটি ছিল তা আমি অনুসন্ধান করতে পারি (সমস্যাটি গিথুব চেঞ্জলগের উপর ভিত্তি করে) এবং একটি ব্রেকপয়েন্ট সেট করেছিলাম। পছন্দসই মাভেন টার্গেটে ডান-ক্লিক করা এবং অন্যদের উল্লিখিত হিসাবে 'ডিবাগ' নির্বাচন করা সঠিকভাবে কাজ করেছে
প্যাট্রিক হেরেরা

10

কেবলমাত্র ইন্টেলিজের মধ্যেই মাভেন গোলটি ডিবাগ করার সহজতম উপায় হ'ল একটি নিয়মিত মেভেন গোল তৈরি করা এবং রানার ট্যাবে সেই ভিএম বিকল্পগুলি পাস করুন:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

যেখানে 8000 দূরবর্তী ডিবাগিংয়ের জন্য একটি বন্দর নম্বর।

ম্যাভেন গোল কনফিগারেশন

তারপরে 8000 বন্দর দিয়ে নতুন রিমোট কনফিগারেশন তৈরি করুন ma

রিমোট ডিবাগিং কনফিগারেশন


3

হয় আপনি উপরের উত্তরটি উল্লেখ করতে পারেন বা এই প্লাগইনটিকে pom.xML এ যুক্ত করতে পারেন

           <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            <jvmArguments>
            -Xdebug - 
            Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
            </jvmArguments>
            </configuration>
        </plugin>

এবং mvnপরিবর্তে ম্যাভেন গোল চালান mvnDebug। যেমনmvn spring-boot:run

আইডিইএতে, একটি রিমোট কনফিগারেশন যুক্ত করুন। সেটিংসের অধীনে, পরিবহন সেট করুন: সকেট, ডিবাগার মোড: সংযুক্ত করুন, হোস্ট: লোকালহোস্ট, পোর্ট: 8000 (এমভিএনডিবাগের ডিফল্ট পোর্ট)।

আপনি যখনই কোডটি ডিবাগ করতে চান তখন আইডিইএতে ডিবাগ হিসাবে চালান।


4
প্রশ্নটি বসন্তের উল্লেখ করে নি, এই উত্তরটি বসন্ত-নির্দিষ্ট
অমলগোভিনাস

1

যেহেতু আপনি ইন্টেলিজের সাথে কাজ করছেন, ইতিমধ্যে সেখানে একটি অন্তর্নির্মিত ডিবাগার রয়েছে এবং আপনাকে অবশ্যই mvnDebug ব্যবহার করার দরকার নেই যা একটি কমান্ড লাইন সরঞ্জাম। এই টিউটোরিয়ালটি দেখুন: কীভাবে ইন্টেলিজ আইডিইএতে মাভেন অ্যাপ্লিকেশনগুলি ডিবাগ করবেন

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


4
টিউটোরিয়ালটি কেবলমাত্র ডিবাগিংকে কভার করে exec:java। তবে, আপনার যদি জেভিএম-এর জন্য অতিরিক্ত যুক্তি সরবরাহ করার প্রয়োজন হয়, আপনাকে ব্যবহার করতে হবে exec:exec( স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 30৩০৫০০০/২ দেখুন ), যা সেভাবে ডিবাগ করা যায় না।
মিরেলন

1

@ পিটার জাজান্টোর উত্তর আমার পক্ষে কাজ করে তবে আমি আমার উত্স কোডটি নষ্ট করতে পছন্দ করি না।

এবং আমি সেই MvnDebugপথে কাজ করতে পারি না ।

সুতরাং আমি অন্যভাবে চেষ্টা করি, আইডিইএ মডিউল হিসাবে প্লাগইন উত্স যুক্ত করুন

বিশদ পদক্ষেপটি এখানে:

  1. একটি স্বাধীন প্রকল্প হিসাবে প্লাগইন উত্স ক্লোন করুন।

  2. আপনার প্রকল্পে, File -> New -> Module from Exist Sourcesআপনি যে ধাপে ক্লোন করেছেন সেই প্লাগইন প্রকল্পে যান ।

  3. এখন আপনি প্লাগইন উত্স কোডটি খুলতে পারেন এবং কিছু ব্রেক পয়েন্ট সেট করতে পারেন।

  4. আপনার মেভেন লক্ষ্যটি ডিবাগ মোড হিসাবে চালান, এটি ব্রেক পয়েন্টে থামানো উচিত।

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