+3 امتیاز
قبل در برنامه نویسی توسط (1.5هزار امتیاز)
برچسب گذاری دوباره قبل توسط
ابزارهای گوناگونی برای ساخت یا  build پروژه در جاوا وجود دارد که من با ant و maven تا حدودی آشنایی دارم.

ولی دلیل اینکه پروژه های جاوا از maven  استفاده میکنند چیست؟ و چرا همه از ant به maven مهاجرت میکنند.

در عمل هر کدام از ابزارهای bulid در یک پروژه واقعی چه مزایا و معایبی دارد؟ و آیا ابزار دیگری برای build وجود دارد؟

2 پاسخ

+5 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

به نظر من مقایسه Ant و Maven درست نیست چون Ant جزء نسل اول اتوماسیون های Build است که بیشتر تمرکز آنها برروی خودکارسازی فرایند build بود ولی Maven جزء نسل بعدی اتوماسیون های Build است که علاوه بر خودکارسازی فرایند Build به مباحث مرتبط به فرایند های تولید و مدیریت نرم افزار هم وارد شده است ، اگر ما Ant را با Make مقایسه کنیم یا Maven را با Gradle ،مقایسه درستی است ولی مقایسه دو ابزار مختلف که اهداف مختلفی دارند منصفانه نیست.

در نسل اول اتوماسیون های Build هدف اصلی فراهم آوردن ابزاری بود که بتواند فرایند تولید کد قابل اجرا از سورس کد را خودکار و قابل استفاده مجدد سازد و در حال حاضر نیز در بسیاری از پروژه های نرم افزاری بدلیل اینکه حوزه نیازمندی های build محدود است (برای آن پروژه ها) هنوز Ant کاربرد دارد و می توان مزیت اصلی Ant را ساده بودن و کم هزینه بودن آن دانست.

اما در نسل بعدی اتوماسیون های Build دغدغه های دیگر فرایند تولید و مدیریت نرم افزار نیز به عهده اتوماسیون های Build گذاشته شد علاوه بر این مفاهیم جدیدی مانند تعریف declarative فرایند (در برابر تعریف procedural در Ant) نیز به این ابزارها اضافه شد. Maven علاوه بر این که قابلیت خودکار سازی فرایند Build را در اختیار ما قرار می دهد قابلیت های زیر را نیز در اختیار ما می گذارد:

  • ساختار استاندارد فولدربندی پروژه.
  • مفاهیم سطح بالاتر برای مدیریت فرایند توسعه نرم افزار (Build lifecycle و phases)
  • مدیریت وابستگی های (dependency) پروژه به پروژه های دیگر.
  • ساختار استاندارد تعریف پروژه (pom.xml)
  • استاندارد توسعه پلاگین
  • ابزار ایجاد اسکلت پروژه (archetype)
  • ابزار Repository برای مدیریت مرکزی artifact های نرم افزاری
  • و ...

در نهایت می توان دلیل اصلی مهاجرت اکثر پروژه های نرم افزاری از Ant به Maven را استفاده از قابلیت های Maven است که مدیریت فرایند Build و توسعه نرم افزار را برای آن پروژه ها سهل تر می سازد.

قبل توسط (95 امتیاز)
با نظر سعید موافقم. به نظر من پروژه های ant به maven مهاجرت نمی کنند، مگر اینکه برای ساختار پروژه نیازمندیهایی تعریف گردد که با تبدیل آن به ساختار maven راحتتر بتوان آنها را پوشش داد و تمام این مهاجرت بیشتر به مفاهیم مدیریت پروژه بازمیگردد تا مزیت maven به ant. کما اینکه بسیاری از مدیران پروژه برای کنترل پروژه بهتر کماکان راحتترند با ant کار کنند.

به طور خلاصه
از مزایای ant سادگی و انعطاف پذیری فوق العاده در ساختار و توسعه آنست
و از مزایای maven با وجود پیچدگی بیشتر مدیریت بهتر ساختار پروژه می باشد
+3 امتیاز
قبل توسط (79 امتیاز)
به نظر من اینطور نیست که همه از ant به maven مهاجرت میکنند.هر کدام از این ابزار برای خودشان مزایایی دارند می توان گفت که goal در maven همان task در ant است.یکی از نقاط قوت maven امکان دانلود کردن dependency ها از یک repository می باشد .ant خیلی راحت با build server های مختلف کار میکند . با مفاهیمی مثل  classpath و مسیر دهی library ها بصورت relative و absolute راحت است . در کل می توان گفت ant  هنوز هم از   maven بهتر است و اینطور هم نیست که همه دارند مهاجرت می کنند  .

سوالات مشابه

0 امتیاز
1 پاسخ 845 بازدید
+2 امتیاز
1 پاسخ 289 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 598 بازدید
0 امتیاز
1 پاسخ 511 بازدید
+2 امتیاز
1 پاسخ 811 بازدید
+1 امتیاز
1 پاسخ 404 بازدید
+1 امتیاز
1 پاسخ 557 بازدید
0 امتیاز
1 پاسخ 668 بازدید
...