آشنایی با Plugin ها در Maven
در این آموزش به بررسی Plugin ها در Maven می پردازیم. Pluign ها ابزاری هستند که میتوان کارایی Maven را توسعه داد. معماری داخلی Maven از اجتماع چندین Plugin شامل شده است که راجب آنها در مقاله های قبل توضیح داده شد. پس میتوان ساختار معماری Maven را یک ساختار کاملا modular دانست و همانطور که در مقاله قبلی به آن اشاره شد, فاز compile خود یک plugin است. یکی از محاسن modular بودن سیستم Maven , قابلیت اضافه کردن و تنظیم کردن plugin به آن میباشد.
در این آموزش میخواهیم Compiler Plugin را که در مقاله قبل استفاده شد, مورد بررسی قرار دهیم. اگر pom.xml پروژه قبل را باز کنید, یکسری تنظیمات مرتبط با plugin را مشاهده میکنید
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.4</source> <target>1.4</target> </configuration> </plugin>
در تنظیمات plugin گفته شده است که jvm version در source و target برابر با ۱.۴ باشد و علت آن این است که ما archetype مربوط به JavaEE 1.4 را انتخاب کرده ایم و متناسب با معماری ما این ورژن را برای پروژه مشخص کرده است. اگر تغییری در تنظیمات plugin اعمال نکنیم و امکان استفاده از ابزاری که در JavaEE 5 وجود دارند ( مانند generic ) برای ما مقدور نخواهد بود. علت این است که ما Compiler را برای ورژن ۱.۴ آماده کرده ایم. اما از Maven Version 3 به بعد ورژن javaEE 5 به عنوان ورژن استاندارد Compile منصوب شد.حال اگر میخواهید الزاما از ورژن های قبل استفاده کنید باید مانند کد بالا آنرا در pom.xml تعریف کنید.
در اینجا ما ورژن Compiler را به ۱.۴ تغییر دادیم اما میخواهیم با استفاده از یکسری تغییرات امکان استفاده از ورژن ۵ را نیز داشته باشیم.
یک کلاس در برنامه ایجاد میکنیم و کد زیر را درون آن قرار میدهیم :
public class MyApp { public static void main(String[] args) { List<String> names = new ArrayList<String>(); } }
وقتی دستور
mvn compile
را اجرا میکنیم با چنین خطایی مواجه میشویم :
error: generics are not supported in -source 1.4
برای رفع این مشکل ورژن source و target را به ۱.۵ تغییر میدهیم و دستور compile را مجددا اجرا میکنیم و با موفقیت عمل compile انجام میشود.
حال اگر تمام کد های قسمت build را حذف کنیم و مجددا دستور compile را اجرا کنیم باز هم با موفقیت انجام میشود زیرا همانطور که اشاره شد از Maven 3 به بعد jvm version به ۱.۵ تغییر یافته و مشکلی رخ نمیدهد. اما اگر از Maven 2 استفاده کنید امکان استفاده از generic ها به صورت پیش فرض برای شما وجود ندارد.
در مقاله بعد به جمع بندی مباحث Maven میپردازیم. با ادامه آموزش های Maven همراه ما باشید
موفق باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.