বিল্ড.gradle (প্রকল্প) এবং build.gradle (মডিউল) এর মধ্যে পার্থক্য


99

আমি আমার প্রকল্পে অ্যান্ড্রয়েড অ্যাসিনক্রোনাস এইচটিপিপি ক্লায়েন্টের নির্ভরতা যুক্ত করার চেষ্টা করছি। সুতরাং দুটি বিল্ড.gradle ফাইল আছে প্রকল্পে।

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

আমার বোঝা অনুসারে, বিভিন্ন ধরণের নির্ভরতা রয়েছে:

  1. যা বিল্ড.gradle এর মূল স্তরে সংজ্ঞায়িত করা হয়েছে (প্রকল্প: মাই-অ্যাপ)
  2. বিল্ডস্প্রেডের বিল্ডস্ক্রিপ্টের ভিতরে একটি (প্রকল্প: মাই-অ্যাপ)
  3. আরেকটি হ'ল বিল্ড.gradle (মডিউল: অ্যাপ)

এই প্রশ্নটি বিল্ডস্ক্রিপ্টের নির্ভরতার জন্য ভান্ডারগুলি সম্পর্কে, প্রথম দুটি ধরণের সম্পর্কে কিছুটা ব্যাখ্যা করুন।

এছাড়াও build.gradle (প্রকল্প: মাই-অ্যাপ) বলছে says

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files

সুতরাং আমি অনুমান করি যে অ্যান্ড্রয়েড অ্যাসিনক্রোনাস এইচটিপিপি ক্লায়েন্টের নির্ভরতা কোডটি বিল্ডড্র্যাডলে (মডিউল: অ্যাপ) যুক্ত করা উচিত।

যদি কেউ আরও ভাল বোঝার জন্য এই সমস্তগুলির একটি পরিষ্কার চিত্র দিতে পারে, তবে দুর্দান্ত লাগবে।


4
যদি বাহ্যিক গ্রন্থাগার, হ্যাঁ আপনি যুক্ত করতে build.gradle(Modules:app)বা File -> Project Structure -> Modules -> (Choose project you want to add library) -> Dependenciesযেখানে আপনি একটি সবুজ ক্রস চিহ্ন দেখতে পাবেন সেখানে যেতে হবে, আলতো Module Dependency
চাপুন যা

Build.gradle (মডিউল: অ্যাপ) এ যুক্ত করা, আমাকে ত্রুটি দেয় যে Failed to find: com.loopj.android:android-async-http:1.4.5 কেন এটি সরাসরি ডাউনলোড করতে পারছে না , আমিও প্রক্সি সেট করেছি। আমি জার ফাইলটি ডাউনলোড করেছিলাম এবং ম্যানুয়ালি চেষ্টা করেছি তবে File Repository.. এটি সঠিক উপায়ে।
অনিল ভাস্কর

সরলতার ব্যবহারের জন্য Project Structureযান Modulesএবং আপনার প্রকল্পটি চয়ন করুন। সেখানে আপনি একটি দেখতে পাবেন green cross signNew Moduleউইন্ডো খুলবে যে ক্লিক করা । সেখানে আপনি আপনার গ্রন্থাগারটি আমদানি করতে বেছে নিন you আপনার যদি .jarফাইল থাকে তবে নীচেরটি চয়ন করুন import .JAR or .AAR package। অন্যথায় আপনার জারটি libsফোল্ডারে অনুলিপি করুন এবং আপনার Module:appএই নির্ভরতাগুলি যুক্ত করুন:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/your_jar_file.jar') }
hrskrs

উত্তর:


47

build.gradle(Project:My-app)

শীর্ষ স্তরের বিল্ড ফাইল যেখানে আপনি সমস্ত উপ-প্রকল্পগুলি / মডিউলগুলিতে সাধারণ কনফিগারেশন বিকল্প যুক্ত করতে পারেন।

প্রতিটি প্রকল্পে কtop-level gradle file । এটি common configsসাধারণত সকলের জন্য রয়েছে modules। এর মধ্যে যা কিছু অন্তর্ভুক্ত রয়েছে top-level gradleতা সকলকে প্রভাবিত করবে modules

প্রাক্তন:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'

        //Maven plugin
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(Module:app)

আপনার নির্দিষ্ট মডিউলের ফাইল তৈরি করুন (যেখানে আপনি আপনার নির্ভরতাগুলি যুক্ত করেন, কনফিগগুলিতে স্বাক্ষর করেন, বিল্ডের ধরণ, স্বাদাদি ইত্যাদি)

সবার modulesএকটি নির্দিষ্ট gradleফাইল রয়েছে । এই gradleফাইলটিতে যা কিছু অন্তর্ভুক্ত রয়েছে , এটি কেবল moduleএতে অন্তর্ভুক্ত থাকাগুলিকেই প্রভাবিত করবে ।

প্রাক্তন:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.hrskrs.gesturefun"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':gesture-fun')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.jakewharton:butterknife:7.0.1'
}

45

এটি কিছুটা বিভ্রান্তিকর কারণ ডিফল্টরূপে অ্যান্ড্রয়েড স্টুডিও দুটি build.gradleফাইল একে অপরের ঠিক পাশেই (অ্যান্ড্রয়েড ভিউ ব্যবহার করার সময়) দেখায় ।

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

আপনি যদি প্রকল্পের দৃশ্যে স্যুইচ করেন তবে আপনি আসল কাঠামোটি দেখতে পাবেন এবং বিভিন্ন build.gradleফাইলগুলি কোথায় অবস্থিত।

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

build.gradle(প্রকল্প: MyApplication) ফাইল প্রকল্পের রুট ফোল্ডারে এবং তার কনফিগারেশন সেটিংস প্রকল্পে যে মডিউল প্রয়োগ করা হয়। একটি মডিউল বড় প্রকল্পের একটি বিচ্ছিন্ন অংশ। একটি বহু-মডিউল প্রকল্পে, এই মডিউলগুলির নিজস্ব কাজ রয়েছে তবে পুরো প্রকল্পটি তৈরি করতে একসাথে কাজ করুন। বেশিরভাগ অ্যান্ড্রয়েড প্রকল্পের মধ্যে একটি মডিউল থাকে, অ্যাপ মডিউল।

এখানে build.gradle(মডিউল: অ্যাপ) ফাইলটি appফোল্ডারে রয়েছে। এর বিল্ড সেটিংসটি কেবল অ্যাপ মডিউলে প্রয়োগ হয় to যদি অন্য কোনও মডিউল থাকে, তবে সেই মডিউলটির নিজস্ব build.gradleফাইলও থাকবে । একটি হিসাবে উদাহরণস্বরূপ অন্য অ্যাপ্লিকেশন মডিউল যে আমি পরীক্ষার জন্য ব্যবহার করার পরিকল্পনা একটি লাইব্রেরি মডিউল, একটি ডেমো অ্যাপ্লিকেশন মডিউল, এবং: আমি তিনটি মডিউলগুলির সাথে একটি লাইব্রেরি প্রকল্প প্রণীত। তাদের প্রত্যেকের নিজস্ব build.gradleফাইল রয়েছে যা আমি টুইট করতে পারি।

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

একটি বেসিক প্রকল্পে, আপনার সম্পাদনা করার জন্য প্রায় প্রতিটি প্রয়োজন অ্যাপ মডিউলটির build.gradleফাইলে থাকবে। আপনি এটি এর মতো মনে রাখতে পারেন:

আপনি একটি অ্যাপ তৈরি করছেন , সুতরাং build.gradle(মডিউল: অ্যাপ ) ফাইলে যান।

আরও পড়া


প্রকল্পগুলি এবং মডিউলগুলি কী কী তা ব্যাখ্যা করার সাথে সাথে এটি উত্তরটি আরও ভাল উত্তর দেয়।
t3chb0t

1

দুটি gradleফাইলের সম্পর্ক সম্পর্কে , hrskrs একটি খুব স্পষ্ট ব্যাখ্যা দিয়েছিল , আমি এটি সম্পর্কে কিছু পরিপূরক করব।

যদি আপনার প্রকল্পের কেবল একটি মডিউল থাকে (যেমন অ্যাপ্লিকেশন ), শীর্ষ বিল্ড.gradle এর সুবিধা (প্রকল্প: মাই-অ্যাপ) খুব স্পষ্ট না দেখায়। কারণ আপনি মডিউল সম্পর্কে বিল্ড . gradle (মডিউল: অ্যাপ) এ সমস্ত কিছু কনফিগার করতে পারেন এবং নিম্নলিখিত দিনগুলিতে আপগ্রেড করার সময় কেবল একটি ফাইল পরিবর্তন করতে পারেন。

তবে যদি আপনার প্রকল্পে 5 টি মডিউল থাকে এবং এটি ঘটেছিল যে এগুলির একই নির্ভরতা এ রয়েছে , আপনি যদি শীর্ষ বিল্ডড্র্যাডল (প্রকল্প: মাই-অ্যাপ) ব্যবহার না করেন তবে নিম্নলিখিত দিনগুলিতে আপনার 5 টি ফাইল বজায় রাখতে হবে।

উপায় দ্বারা, build.gradle (মডিউল: অ্যাপ্লিকেশন) ওভাররাইট করতে build.gradle (: আমার-অ্যাপ প্রকল্প)

এই নকশাটি অ্যাপ্লিকেশনটির রক্ষণাবেক্ষণের উন্নতি করতে পারে

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