android - অ্যান্ড্রয়েড স্টুডিওতে গ্র্যাডল কি?




android-studio gradle (14)

সংক্ষিপ্ত উত্তর

Gradle একটি বিল্ড সিস্টেম।

দীর্ঘ উত্তর

অ্যান্ড্রয়েড স্টুডিওর আগে আপনি আপনার বিকাশের উদ্দেশ্যে Eclipse ব্যবহার করছেন, এবং সম্ভাবনাগুলি হল, আপনি জানেন না যে Eclipse ছাড়া আপনার Android APK কীভাবে তৈরি করতে হয়।

আপনি কমান্ড লাইন এ এটি করতে পারেন, তবে আপনাকে SDK এ প্রতিটি সরঞ্জাম (DX, aapt) কী করে তা শিখতে হবে। Eclipse আমাদের নিজেদের বিল্ড সিস্টেম প্রদান করে এই নিম্ন স্তরের কিন্তু আমাদের গুরুত্বপূর্ণ, মৌলিক বিবরণ থেকে সব সংরক্ষণ।

এখন, আপনি কি কখনও অবাক হয়েছেন যে res ফোল্ডারটি আপনার res ফোল্ডারের মতো একই ডিরেক্টরি কেন?

এই যেখানে বিল্ড সিস্টেম ছবি প্রবেশ করে। বিল্ড সিস্টেম স্বয়ংক্রিয়ভাবে সমস্ত উত্স ফাইল ( .java বা .xml ) নেয়, তারপর যথাযথ টুল প্রয়োগ করে (যেমন java ক্লাস ফাইলগুলি নেয় এবং তাদের dex ফাইলগুলিতে রূপান্তর করে) এবং তাদের সবগুলি এক সংকুচিত ফাইল, আমাদের প্রিয় এপিকে গোষ্ঠীভুক্ত করে।

এই বিল্ড সিস্টেমটি কিছু কনভেনশন ব্যবহার করে: একটি উদাহরণ হল উৎস ফাইলগুলির ধারণকারী ডিরেক্টরিটি নির্দেশ করতে হবে (এটিতে এটি \src ফোল্ডারে) অথবা সংস্থান ফাইলগুলি (এটিতে \res ফোল্ডারে \res ফোল্ডারে) রয়েছে।

এখন, এই সব কাজ স্বয়ংক্রিয়ভাবে করার জন্য, একটি স্ক্রিপ্ট আছে আছে; লিনাক্সে শেল স্ক্রিপ্টিং ব্যবহার করে আপনি নিজের বিল্ড সিস্টেমটি লিখতে পারেন বা উইন্ডোতে ব্যাচ ফাইল সিনট্যাক্স ব্যবহার করতে পারেন। বুঝেছি?

গ্র্যাডল অন্য বিল্ড সিস্টেম যা অন্যান্য বিল্ড সিস্টেমগুলির থেকে সেরা বৈশিষ্ট্যগুলি গ্রহণ করে এবং তাদের একত্রিত করে। এটি তাদের shortcomings বন্ধ ভিত্তি করে উন্নত করা হয়। এটি একটি JVM ভিত্তিক বিল্ড সিস্টেম , এর মানে কি যে আপনি জাভাতে নিজের স্ক্রিপ্ট লিখতে পারেন, যা Android স্টুডিও ব্যবহার করে।

Grlele সম্পর্কে একটি শীতল জিনিস এটি একটি প্লাগইন ভিত্তিক সিস্টেম । এর অর্থ হল যদি আপনার নিজস্ব প্রোগ্রামিং ভাষা থাকে এবং আপনি উৎস থেকে কিছু প্যাকেজ (জাভার জন্য জারের মত আউটপুট) তৈরি করার কাজ স্বয়ংক্রিয়ভাবে করতে চান তবে আপনি জাভা বা গ্রোভিতে (অথবা কোটলিন, here ) সম্পূর্ণ প্লাগইন লিখতে পারেন এবং বিশ্রাম বিশ্বের বিতরণ।

কেন গুগল এটা ব্যবহার করে?

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

আপনি আপনার প্রকল্পের build.gradle ফাইল (গুলি) দেখেছেন। আপনি আপনার কাজ স্বয়ংক্রিয়ভাবে স্ক্রিপ্ট লিখতে পারেন যেখানে। এই ফাইলগুলিতে আপনি যে কোডটি দেখেছেন তা হল গ্রোভি কোড। আপনি System.out.println("Hello Gradle!"); লিখেছেন System.out.println("Hello Gradle!"); তারপর এটি আপনার কনসোল প্রিন্ট করা হবে।

আপনি একটি নির্মাণ স্ক্রিপ্ট কি করতে পারেন?

একটি সাধারণ উদাহরণ হল যে প্রকৃত বিল্ড প্রক্রিয়াটি ঘটে যাওয়ার আগে আপনাকে একটি ডিরেক্টরি থেকে অন্য ফাইলগুলিতে অনুলিপি করতে হবে। একটি Gradle নির্মাণ স্ক্রিপ্ট এই কাজ করতে পারেন।

Gradle আমার এবং বিট অ্যান্ড্রয়েড বিকাশকারী জন্য কিছু বিভ্রান্তিকর। কেউ কি অ্যান্ড্রয়েড স্টুডিওতে ধীরে ধীরে ধীরে ধীরে ব্যাখ্যা করতে পারে এবং এর উদ্দেশ্য কী? কেন গ্র্যান্ডল অ্যান্ড্রয়েড স্টুডিও অন্তর্ভুক্ত?


Gradle একটি বিল্ড সিস্টেমবিল্ড সিস্টেম প্রোগ্রাম কম্পাইলেশন প্রক্রিয়া স্বয়ংক্রিয়ভাবে পরিকল্পিত সফটওয়্যার সরঞ্জাম। বিল্ড সিস্টেম বিভিন্ন ফর্ম আসা, এবং সফটওয়্যার নির্মাণ কাজ বিভিন্ন জন্য ব্যবহার করা হয়। তাদের প্রাথমিক লক্ষ্য কার্যকরীভাবে নির্বাহযোগ্য তৈরি করতে হয়।

আরেকটি সম্পর্কিত শব্দ হল বিল্ড অটোমেশন যা একটি সফটওয়্যার বিল্ড তৈরি এবং স্বয়ংক্রিয়ভাবে সংযুক্ত প্রসেসগুলি সহ কম্পিউটার সোর্স কোড কম্পাইল করা: বাইনারি কোড, প্যাকেজিং বাইনারি কোড, এবং স্বয়ংক্রিয় পরীক্ষা চালানো।

অন্যান্য ভাষার জন্য অনুরূপ বিল্ড সিস্টেম ( here সম্পূর্ণ তালিকা দেখুন):

  1. Apache Ant এবং Apache Maven - জাভা
  2. sbt (সাধারন বিল্ড টুল) - স্কালের জন্য (Play Framework ইত্যাদি)
  3. AAP - পাইথন ভিত্তিক বিল্ড টুল
  4. রেকে (অপাচি বিল্ডার) - রুবি
  5. Leiningen জন্য Leiningen

অ্যান্ড্রয়েড স্টুডিওতে, গ্র্যাডেল একটি নির্ভরযোগ্য বিল্ড টুল যা নির্ভরশীলতা পরিচালনা করে এবং কাস্টম বিল্ড লজিক প্রদান করে Android প্যাকেজগুলি তৈরি করতে ব্যবহৃত হয়।

APK ফাইল (Android অ্যাপ্লিকেশন প্যাকেজ) একটি বিশেষ ফর্ম্যাটেড জিপ ফাইল রয়েছে যা রয়েছে

  • বাইট কোড
  • সম্পদ (চিত্র, UI, এক্সএমএল ইত্যাদি)
  • ম্যানিফেস্ট ফাইল

এপিবি ফাইলটি স্বাক্ষরিত হয় এবং এডিবি (Android ডিবাগ সেতু) ব্যবহার করে ডিভাইসটিতে ধাক্কা দেয় যেখানে এটি কার্যকর হয়।


আপনি এখানে গ্র্যাডেল সম্পর্কে জানতে প্রয়োজনীয় সবকিছু খুঁজে পেতে পারেন: গ্র্যাডল প্লাগইন ব্যবহারকারী নির্দেশিকা

নতুন বিল্ড সিস্টেম লক্ষ্য

নতুন বিল্ড সিস্টেমের লক্ষ্যগুলি হল:

  • কোড এবং সংস্থান পুনঃব্যবহার করা সহজ করুন
  • মাল্টি-এপিকে বিতরণের জন্য বা অ্যাপ্লিকেশনের বিভিন্ন স্বাদের জন্য অ্যাপ্লিকেশনটির বিভিন্ন রূপ তৈরি করা সহজ করে
  • কনফিগার করা, প্রসারিত এবং কাস্টম প্রক্রিয়াটি কাস্টমাইজ করা সহজ করুন
  • ভাল আইডিই ইন্টিগ্রেশন

কেন গ্র্যাডেল?

গ্র্যাডল একটি উন্নত বিল্ড সিস্টেম পাশাপাশি একটি উন্নত বিল্ড টুলকিট প্লাগইনগুলির মাধ্যমে কাস্টম বিল্ড লজিক তৈরি করার অনুমতি দেয়।

এখানে কিছু বৈশিষ্ট্য রয়েছে যা আমাদেরকে গ্র্যাডল চয়ন করেছে:

  • ডোমেন নির্দিষ্ট ভাষা (DSL) বিল্ড যুক্তি বর্ণনা এবং ম্যানিপুলেট
  • ফাইলগুলি তৈরি করুন গ্রোভি ভিত্তিক এবং ডিএসএলের মাধ্যমে ঘোষণামূলক উপাদানের মিশ্রন এবং ডিএসএল উপাদানগুলি কাস্টম লজিক প্রদানের জন্য কোড ব্যবহার করার অনুমতি দেয়।
  • ম্যানভেন এবং / অথবা আইভি মাধ্যমে অন্তর্নির্মিত ব্যবস্থাপনা অন্তর্নির্মিত।
  • খুব নমনীয়। সেরা অনুশীলন ব্যবহার করে অনুমতি দেয় কিন্তু কাজ করার নিজস্ব উপায় জোর করে না।
  • প্লাগইনগুলি ব্যবহারের জন্য ফাইলগুলি তৈরির জন্য তাদের নিজস্ব DSL এবং তাদের নিজস্ব API প্রকাশ করতে পারে।
  • গুড টুলিং API আইডিই ইন্টিগ্রেশন অনুমতি

এটি নতুন বিল্ড টুল যা Google এর জন্য Android ব্যবহার করতে চায়। এটা আরো এক্সটেনসিবল, এবং কীট বেশী দরকারী কারণে ব্যবহৃত হচ্ছে। এটি বিকাশকারী অভিজ্ঞতা উন্নত বোঝানো হয়।

আপনি এখানে গুগল আই / ও এ অ্যান্ড্রয়েড বিকাশকারী দল থেকে জাভিয়ার ডুক্রোথের একটি আলাপ দেখতে পারেন।

এছাড়াও জাভিয়ার এবং টর নর্বি দ্বারা Android স্টুডিওতে আরেকটি আলাপ আছে, এছাড়াও এখানে Google I / O এর সময়


গ্রাউল গ্রোভি জেভিভি ভাষার ভাষা যা জাভা কি। মূলত, এটি গ্রোভি এর বিল্ড টুল। Ant এর বিপরীতে, এটি সম্পূর্ণ গ্রোভি ভাষার উপর ভিত্তি করে। উদাহরণস্বরূপ, গ্রিডলি স্ক্রিপ্টে গ্রোভি স্ক্রিপ্ট কোডটি নির্দিষ্ট ডোমেন ভাষাতে নির্ভর করার পরিবর্তে কিছু করার জন্য লিখতে পারেন।

আমি ইন্টেলিজের নির্দিষ্ট ইন্টিগ্রেশনটি জানি না, তবে কল্পনা করুন যে আপনি গ্রোভিতে "প্রসারিত" করতে পারেন যেমন আপনি নির্দিষ্ট "বিল্ড" ভাষা প্রাইমিটাইভ লিখতে পারেন এবং তারা শুধু গ্রোভি ভাষার অংশ হয়ে ওঠে। (গ্রোভির মেটাপোগ্রামিং নিজেই একটি সম্পূর্ণ আলোচনার বিষয়।) ইন্টেলিজ / গুগল খুব উচ্চ-স্তরের বিল্ড ভাষা তৈরি করতে গ্র্যাডেল ব্যবহার করতে পারে, তবে এটি একটি বিস্তৃত, খোলা মানদণ্ডে তৈরি একটি ভাষা।


গ্র্যাডল একটি স্বয়ংক্রিয় বিল্ড টুলকিট যা কেবল অ্যানড্রইড প্রকল্পের জন্য নয় এমন বিভিন্ন পরিবেশে সংহত করতে পারে।

এখানে কয়েকটি বিষয় যা আপনি ধীরে ধীরে করতে পারেন।

  • নূন্যতম কনফিগারেশন নতুন প্রকল্পগুলির জন্য প্রয়োজনীয় কারণ গ্র্যাডল আপনার Android স্টুডিও প্রকল্পগুলির জন্য ডিফল্ট কনফিগারেশনগুলি রয়েছে।

  • নির্ভরতা ঘোষণা। আপনি স্থানীয় বা দূরবর্তী সার্ভারে হোস্ট করা নির্ভরতা জার ফাইল বা লাইব্রেরি ফাইলগুলি ঘোষণা করতে পারেন।

  • Gradle স্বয়ংক্রিয়ভাবে আপনার প্রকল্পের উৎস থেকে একটি পরীক্ষা ডিরেক্টরি এবং একটি পরীক্ষা APK জেনারেট করে।

  • আপনি যদি আপনার গ্র্যাডেল বিল্ড ফাইলে কী প্রয়োজনীয় keyAlias , keyAlias keyPassword এবং কী keyAlias , তবে আপনি স্বাক্ষরিত APK জেনারেট করতে গ্র্যাডেল ব্যবহার করতে পারেন।

  • গ্র্যাডেল বিভিন্ন প্যাকেজ সহ একাধিক এপিকে জেনারেট করতে পারে এবং একক মডিউল থেকে কনফিগারেশনগুলি তৈরি করতে পারে।


গ্র্যাডেল Android এর জন্য একটি উন্নত বিল্ড টুলকিট যা নির্ভরতা পরিচালনা করে এবং আপনাকে কাস্টম বিল্ড লজিক সংজ্ঞায়িত করতে দেয়। বৈশিষ্ট্য মত

  • কাস্টমাইজ, কনফিগার, এবং বিল্ড প্রসেস প্রসারিত।

  • একই প্রোজেক্ট ব্যবহার করে বিভিন্ন বৈশিষ্ট্য সহ আপনার অ্যাপ্লিকেশনের জন্য একাধিক APK তৈরি করুন।

  • কোড এবং সম্পদ পুনরায় ব্যবহার করুন।

refer


বিরক্তিকর হওয়ার ঝুঁকিতে আমি মনে করি এন্ড্রয়েড স্টুডিও / গ্র্যাডেল অভিজ্ঞতা এত খারাপ কেন?

বৈশিষ্টসূচক ক্লোজার অভিজ্ঞতা:

  • project.clj তালিকাভুক্ত নির্ভরতা সঙ্গে প্রকল্প ডাউনলোড করুন।
  • Leiningen Clojars এবং Maven নির্ভরতা ধন্যবাদ পায়।
  • প্রকল্প কম্পাইল।

সাধারণত অ্যান্ড্রয়েড স্টুডিও / গ্র্যাডেল অভিজ্ঞতা:

  • "আমার eclipse প্রকল্প আমদানি করুন"।
  • ঠিক আছে আমদানি প্রকল্প।
  • Gradle এটা thang করছেন ... অপেক্ষা করুন ... অপেক্ষা করুন ... অপেক্ষা করুন ... Gradle শেষ হয়েছে।
  • কম্পাইল ... কম্পাইল করা যাবে না কারণ আমি জানি না কোন এক্স কোন লাইব্রেরি খুঁজে পাচ্ছে না।

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

সম্পূর্ণ নির্ভরতা গ্রাফ আমদানি করতে ব্যর্থ হলে এটি আপনাকে বলবে না। অ্যান্ড্রয়েড স্টুডিও সমস্যার সমাধান করার জন্য কোনও দরকারী সহায়তা বা টিপস দেয় না। আপনি নিজে ইক্লিপস ফোল্ডারগুলিতে দেখতে পারেন যেখানে এটি আপনাকে বলে না। এটি আপনাকে কোন লাইব্রেরি অনুপস্থিত বলে মনে হচ্ছে না। অথবা আপনি তাদের জন্য Maven ইত্যাদি অনুসন্ধান সাহায্য।

২016 সালে লিনিনেন / ক্লোজার, বা নোডের এনপিএম, বা পাইথন এর পিপ, বা ডেবিয়ান অ্যাপকেজি (এবং আমি নিশ্চিত যে অন্যান্য ভাষা এবং সিস্টেমের জন্য অনেকগুলি অনুরূপ প্যাকেজ পরিচালক) সবকিছুই সুন্দরভাবে কাজ করে ... হারিয়ে যাওয়া নির্ভরতাগুলি অতীতের বিষয়।

অ্যান্ড্রয়েড ছাড়া। অ্যান্ড্রয়েড স্টুডিও এখন একমাত্র জায়গা যেখানে আমি এখনও অনুপস্থিততা নরকের অভিজ্ঞতা বলে মনে হচ্ছে।

আমি গুগল এর দোষ বলার অপেক্ষা রাখে না। তারা অ্যানড্রয়েড ইকোসিস্টেম (এবং হাজার হাজার বিদ্যমান অ্যান্ড্রয়েড প্রকল্প / অনলাইন টিউটোরিয়াল) ভেঙে দিয়েছিল যখন তারা দৃঢ়ভাবে রূপান্তর প্রক্রিয়া তৈরি না করে Eclipse থেকে Android Studio / Gradle এ স্থানান্তরিত করার সিদ্ধান্ত নেয়। যার প্রকল্পগুলি Eclipse তে কাজ করে, তারা এএস-এ তাদের অভিযোজন করছে না (সম্ভবত এটি তাদের জন্য ব্যথা)। এবং এএস এ প্রকল্পগুলি ব্যবহার করার জন্য লোকেরা একই সমস্যাগুলি আঘাত করছে।

এবং যাইহোক, গ্র্যাডেল যদি এই সুপার-শক্তিশালী বিল্ড সিস্টেম, তবে কেন আমি এখনও SDK ম্যানেজারের অন্য অনেক নির্ভরতা পরিচালনা করছি? কেন প্রয়োজন এমন একটি প্রকল্পের প্রয়োজন নেই, বলুন, এনডিঙ্ক তার গ্র্যাডেল ফাইলে এটি নির্দিষ্ট করে যাতে এটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায় এবং প্রয়োজনে বিল্ট-আপ হয়? কেন এনডিকে বিশেষ? একইভাবে লক্ষ্য প্ল্যাটফর্মের জন্য? কেন আমি তাদের বিরুদ্ধে আমার প্রকল্পটি পরীক্ষা করার পরিবর্তে আইডিই তে স্পষ্টভাবে তাদের ইনস্টল করছি এবং এই সমস্ত দৃশ্যের পিছনে আমার জন্য সাজানো?


Gradle একটি উন্নত বিল্ড সিস্টেম পাশাপাশি একটি উন্নত বিল্ড টুলকিট প্লাগিনের মাধ্যমে কাস্টম বিল্ড লজিক তৈরি করার অনুমতি দেয়!

সুবিধাদি:

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

ম্যানিফেস্ট এন্ট্রি

DSL এর মাধ্যমে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি কনফিগার করা সম্ভব:

বৈকল্পিক তৈরি করুন

ডিফল্টরূপে, Android প্লাগইনটি স্বয়ংক্রিয়ভাবে ডিবাগ এবং অ্যাপ্লিকেশনের একটি রিলিজ সংস্করণ তৈরি করতে প্রকল্পটি সেট আপ করে।

নির্ভরতা

  1. স্থানীয় নির্ভরতা:

যদি আপনার স্থানীয় ফাইল সিস্টেমে বাইনারি আর্কাইভ থাকে যা একটি মডিউল নির্ভর করে যেমন জার ফাইলগুলি, আপনি এই মডিউলের জন্য বিল্ড ফাইলের মধ্যে এই নির্ভরতাগুলি ঘোষণা করতে পারেন।

  1. দূরবর্তী নির্ভরতা:

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


@ ব্রিয়ান গার্ডনার দ্বারা :

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

গ্র্যাডল বৈশিষ্ট্য:

  1. নির্ভরতা ব্যবস্থাপনা
  2. Gradle থেকে কীট ব্যবহার করে
  3. Gradle প্লাগইন
  4. জাভা প্লাগইন
  5. অ্যান্ড্রয়েড প্লাগইন
  6. মাল্টি-প্রকল্প বিল্ড

Gradle হল একটি বিল্ড সিস্টেম যা Android স্টুডিওতে চলছে।

উদাহরণস্বরূপ অন্যান্য ভাষাগুলিতে:

  • জাভা এর Ant এবং Maven
  • রুবি এর Rake
  • A-A-P এর সি
  • .NET এর NAnt
  • লিনাক্সে Make

সহজ শর্তে, গ্র্যাডল দুটি গুরুত্বপূর্ণ প্রক্রিয়া বাস্তবায়নের জন্য Android স্টুডিও দ্বারা সরবরাহিত একটি সরঞ্জাম:

  1. আমাদের প্রকল্প তৈরি করুন
  2. প্যাকেজ AndroidManifest.xml, res ফোল্ডার, এবং বাইনারি কোড বিশেষভাবে বিন্যাসিত জিপ ফাইলে APK নামে পরিচিত

Gradle = Groovy + Cradle হান্স ডকটার ফোরাম মন্তব্য

বিভ্রান্তিটি তখন একটু অপ্রয়োজনীয় হয় যখন এটি কেবল "বিল্ড" বা Android স্টুডিওতে কিছু বলা যেতে পারে।

আমরা উন্নয়ন সম্প্রদায়ের মধ্যে নিজেদের জন্য কিছু কঠিন করতে চাই।





build-automation