breakpoint گذاشتن روی پلاگین‌های maven

بعضی وقتها بنا به هر علتی لازمه روال عملکرد پلاگین بررسی بشه و چه کاری بهتر از اینکه پلاگین در حال اجرا رو بشه روش breakpoint گذاشت، روال من درآوردی که جدیدن انجام میدم مراحل زیر رو داره:

۱- احتمالا چون باگ و مشکلی شروع کننده این نیازه، دستور maven رو با -X اجرا میکنم تا لاگ‌های دیباگ هم بشه دید.

۲- به پروژه وابستگی آرتیفکت پلاگین رو اضافه میکنم. (البته موقت، بعد حذفش کنین تا سوتی ندین و کامیت نکنینش : ) )

۳- از متن و عبارت بدست آمده از لاگ، با استفاده از یک دیکامپایلر جاوا (البته چون عموما سورس پلاگین هم در دسترس است، میشه تو سورسش هم جستجو رو انجام داد.) کلاس مربوطه رو پیدا میکنم و روش بریک‌پوینت می‌زارم.

۴- یک دفعه دیگه دستور maven رو اجرا می‌کنم، البته در حال دیباگ!


روش اصلی برای دیباگ کردن یک پلاگین maven به این شکل است که در کنار پروژه اصلی باید یک پروژه مجزا با سورس کد پلاگین ایجاد و بعد یک تنظیم run/debug با پورت ریموت ۸۰۰۰ ایجاد کرد.

در مرحله بعد لازمست به جای فراخوانی mvn از mvnDebug برای اجرای goal/build lifecycle در پروژه اصلی استفاده کرد. با این کار Listening for transport dt_socket at address: 8000 نمایش داده میشود و اجرای maven منوط به وصل شدن پلاگین به پورت دیباگ ۸۰۰۰ است.

محتوای فایل mvnDebug.bat هم در زیر می‌توانید ببینید.

@setlocal
@set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

@call "%~dp0"mvn.cmd %*

 

پست شده در جاوا با برچسب:

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

five × 4 =