অ্যান্ড্রয়েড স্টুডিও প্রকল্পে কেন দুটি বিল্ড.gradle ফাইল রয়েছে?


107

অ্যান্ড্রয়েড স্টুডিওতে একটি Elpipse প্রকল্প আমদানি করার পরে, আমি দুটি build.gradleফাইল দেখতে পাচ্ছি :

1 - <PROJECT_ROOT>\build.gradle
2 - <PROJECT_ROOT>\app\build.gradle

প্রথম সংস্করণটি ছোট, দ্বিতীয় সংস্করণে সংজ্ঞা compileSdkVersionইত্যাদি রয়েছে ,

দুটি পৃথক ফাইল থাকার পেছনের উদ্দেশ্য কী? আলাদা আলাদা বিল্ডিং কাজ আছে?


উত্তর:


74

<PROJECT_ROOT>\app\build.gradleঅ্যাপ্লিকেশন মডিউল জন্য নির্দিষ্ট ।

<PROJECT_ROOT>\build.gradleএকটি "শীর্ষ স্তরের বিল্ড ফাইল" যেখানে আপনি কনফিগারেশন বিকল্পগুলি সমস্ত উপ-প্রকল্প / মডিউলগুলিতে সাধারণ যুক্ত করতে পারেন।

আপনি যদি আপনার প্রকল্পে অন্য একটি মডিউল ব্যবহার করেন, স্থানীয় গ্রন্থাগার হিসাবে আপনার অন্য একটি build.gradleফাইল থাকতে হবে: <PROJECT_ROOT>\module\build.gradle

জন্য উদাহরণস্বরূপ আপনার শীর্ষ স্তরের ফাইলে এইসব সাধারণ বৈশিষ্ট্য নির্দিষ্ট করতে পারেন:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

ext {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.1"
}

আপনার app\build.gradle

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}

+1 আপনাকে ধন্যবাদ, মুহূর্তে আপনার উত্তরটি গ্রহণ করবে। build.gradleফাইলের উপস্থিতি কি কোনও বিল্ড ট্রিগার করতে বাধ্যতামূলক? এছাড়াও, শীর্ষ স্তরের ফাইল উপ-স্তরের ফাইলগুলি কল করে? (যদিও এর কোনও প্রমাণ নেই))
সাবুনকু

যদি আপনি গ্রেড সহ একটি প্রকল্প তৈরি করতে চান তবে বিল্ড.gradle ফাইলগুলি বাধ্যতামূলক। অ্যান্ড্রয়েড স্টুডিওতে গ্রেডের প্রয়োজন হয় না, তবে এটি অত্যন্ত প্রস্তাবিত। শীর্ষ স্তরের ফাইল সাব ফাইলগুলিতে কল করে না; গ্রেড কাজগুলি নিয়ে কাজ করে তবে একটি মন্তব্যে এটি ব্যাখ্যা করা কঠিন।
গ্যাব্রিয়েল মারিওটি

গ্যাব্রিয়েলকে অনেক ধন্যবাদ, এটি আমাকে শুরু করবে।
সাবুনকু

4
বিশেষত নির্মাণটি rootProject.ext.compileSdkVersionখুব তথ্যপূর্ণ।
সবুঙ্কু

4
অতিরিক্ত {... using ব্যবহার করে প্রদক্ষেত্রটি নেওয়া কি গুরুত্বপূর্ণ বা আমাদের সরাসরি শীর্ষস্থানীয় বিল্ড ফাইলটিতে অ্যান্ড্রয়েড প্লাগইন এবং কমপাইলএসডিপি ভার্সন প্রয়োগ করা উচিত?
ফিলল্যাব

18

অফিসিয়াল ডকুমেন্টেশন থেকে:

অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলিতে একটি শীর্ষ স্তরের প্রকল্প গ্রেডল বিল্ড ফাইল থাকে যা আপনাকে প্রকল্পের সমস্ত অ্যাপ্লিকেশন মডিউলগুলির জন্য সাধারণ কনফিগারেশন বিকল্পগুলি যুক্ত করতে দেয়। প্রতিটি অ্যাপ্লিকেশন মডিউলের build.gradleসেই মডিউলটি নির্দিষ্ট করে বিল্ড সেটিংসের জন্য নিজস্ব ফাইল থাকে।

এখানে চিত্র বর্ণনা লিখুন

প্রকল্প বিল্ড ফাইল

<PROJECT_ROOT>\build.gradleবা প্রকল্প বিল্ড ফাইল জন্য সমগ্র প্রকল্প তাই এটি বিশ্বব্যাপী প্রকল্পের কনফিগারেশনের জন্য ব্যবহার করা হবে। একটি সাধারণ প্রকল্প বিল্ড ফাইলের মধ্যে নিম্নলিখিত রয়েছে:

  • বিল্ডস্ক্রিপ্ট যা সংজ্ঞা দেয়:
    • সংগ্রহস্থল এবং
    • নির্ভরতা
  • গ্রেডল প্লাগইন সংস্করণ

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


মডিউল বিল্ড ফাইল

<PROJECT_ROOT>\app\build.gradleবা মডিউল বিল্ড ফাইলটি একটি নির্দিষ্ট মডিউলের জন্য তাই এটি নির্দিষ্ট মডিউল স্তরের কনফিগারেশনের জন্য ব্যবহৃত হবে। একটি মডিউল বিল্ড ফাইলের মধ্যে নিম্নলিখিত রয়েছে:

  • অ্যান্ড্রয়েড সেটিংস
    • compileSdkVersion
    • বিল্ডটুলস ভার্সন
  • defaultConfig এবং productFlavors la
    • ম্যানিফেস্ট বৈশিষ্ট্য যেমন অ্যাপ্লিকেশনআইডি, মিনিএসডিকি ভার্সন, টার্গেটএসডিকি ভার্সন, এবং পরীক্ষার তথ্য
  • বিল্ডটাইপস
    • ডিবাগেবল, প্রোগার্ড সক্ষমকরণ, ডিবাগ সাইন ইন, সংস্করণ নাম প্রত্যয় এবং টেস্টিনোফর্মেশন হিসাবে সম্পত্তি তৈরি করুন
  • নির্ভরতা

আপনি এখানে অফিসিয়াল ডক্স পড়তে পারেন:

প্রকল্প এবং মডিউলগুলি সেটিংস তৈরি করে

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