গ্রেডল র‍্যাপার ফাইলগুলি কীভাবে / কখন তৈরি করা যায়?


212

গ্র্যাডেল র্যাপার কীভাবে কাজ করে তা বোঝার চেষ্টা করছি। অনেক উত্স রেপোতে আমি নীচের কাঠামোটি দেখতে পাচ্ছি:

projectRoot/
    src/
    build.gradle
    gradle.properties
    settings.gradle
    gradlew
    gradlew.bat
    gradle/
        wrapper/
            gradle-wrapper.jar
            gradle-wrapper.properties

আমার প্রশ্নগুলো:

  1. কিভাবে / কখন একজন উত্পন্ন করে gradlew/ gradlew.bat? প্রকল্পটি তৈরি হওয়ার পরে আপনি কি কেবল একবারই এগুলি উত্পন্ন করার কথা বলছেন, প্রতিবার আপনি যখন প্রতিশ্রুতিবদ্ধ / প্রতিশ্রুতি দেন তখন কি আপনি এগুলি উত্পন্ন করেন? এবং কিভাবে তারা উত্পন্ন হয়?
  2. উপরে একই প্রশ্ন, কিন্তু gradle/wrapper/*ফাইলগুলির জন্য ( gradle-wrapper.jarএবং gradle-wrapper.properties)?
  3. কিছু সময় আমি *.gradleপ্রকল্পের gradleডিরেক্টরি ভিতরে অন্যান্য ফাইল দেখতে । এই অতিরিক্ত গ্রেডল ফাইলগুলি কী এবং সেগুলি / কী উপস্থাপন করে? কাস্টম প্লাগইনস?
  4. settings.gradleভিতরে সংজ্ঞা দেওয়া উচিত বনাম মধ্যে যে বৈশিষ্ট্য মধ্যে পার্থক্য কি gradle.properties?

উত্তর:


250
  1. আপনি একবারে এটি তৈরি করেন এবং আবার যখন আপনি প্রকল্পে গ্র্যাডলের সংস্করণটি পরিবর্তন করতে চান। উত্পন্ন করার দরকার নেই তাই প্রায়শই হয়। এখানে ডক্স রয়েছে। শুধু যোগ wrapperকরতে টাস্ক build.gradleফাইল এবং মোড়কের গঠন পেতে এই কাজের চালানো।

    মনে রাখবেন একটি মোড়ক তৈরি করতে আপনার গ্র্যাডল ইনস্টল করা দরকার । জি-বাস্তুতন্ত্রের নিদর্শনগুলি পরিচালনা করার দুর্দান্ত সরঞ্জাম হ'ল SDKMAN! । গ্রেডেল র‍্যাপার তৈরি করতে, build.gradleফাইলের জন্য নিম্নলিখিত কোডের টুকরোটি যুক্ত করুন:

    task wrapper(type: Wrapper) {
       gradleVersion = '2.0' //version required
    }
    

    এবং চালান:

    gradle wrapper
    

    কাজ। এসসিএমে ফলাফল ফাইলগুলি যুক্ত করুন (যেমন গিট) এবং এখন থেকে গ্র্যাডেল র‍্যাপার ব্যবহার করার সময় সমস্ত বিকাশকারীদের গ্র্যাডলের একই সংস্করণ থাকবে।

    গ্রেডেল ২.৪ (বা উচ্চতর) দিয়ে আপনি কোনও উত্সর্গীকৃত টাস্কটি যোগ না করে একটি মোড়কের সেট আপ করতে পারেন:

    gradle wrapper --gradle-version 2.3
    

    অথবা

    gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.zip
    

    সমস্ত বিবরণ এখানে পাওয়া যাবে

গ্রেডল 3.1 --distribution-typeঅপশন থেকেও ব্যবহার করা যেতে পারে। বিকল্পগুলি বাইনারি এবং সমস্ত এবং বিন হয়সমস্ত অতিরিক্ত উত্স কোড এবং ডকুমেন্টেশন রয়েছে। আইডিই ব্যবহার করার সময় সমস্ত কিছুই ভাল হয়, তাই সম্পাদক আরও ভাল কাজ করে। খসড়াটি হ'ল বিল্ডটি দীর্ঘকাল স্থায়ী হতে পারে (সিআই সার্ভারে অর্থহীন আরও ডেটা ডাউনলোড করা দরকার) এবং এতে আরও জায়গা লাগবে।

  1. এগুলি হ'ল গ্রেডল র‍্যাপার ফাইল। আপনার সেগুলি একবার তৈরি করতে হবে (নির্দিষ্ট সংস্করণের জন্য) এবং সংস্করণ নিয়ন্ত্রণে যুক্ত করতে হবে। আপনার যদি গ্রেডল র‍্যাপারের সংস্করণ পরিবর্তন করতে হয় তবে build.gradleদেখুন সংস্করণটি পরিবর্তন করুন (১।) এবং ফাইলগুলি পুনরায় তৈরি করুন।

  2. একটি বিস্তারিত উদাহরণ দিন। এই জাতীয় ফাইলটির একাধিক উদ্দেশ্য থাকতে পারে: মাল্টি-মডিউল প্রকল্প, দায়িত্ব বিচ্ছেদ, সামান্য পরিবর্তিত স্ক্রিপ্ট ইত্যাদি etc.

  3. settings.gradleপ্রকল্পের কাঠামোর জন্য নয় (মডিউল, নাম, ইত্যাদি) দায়বদ্ধ, যখন gradle.propertiesপ্রকল্পের এবং গ্রেডলের বাহ্যিক বিবরণ (সংস্করণ, কমান্ড লাইন আর্গুমেন্ট -XX, বৈশিষ্ট্য ইত্যাদি) ব্যবহার করা হয়


ধন্যবাদ @ ওপাল (+1) - আপনাকে # 3 এর জন্য একটি নির্দিষ্ট উদাহরণ দেওয়ার জন্য নেটফ্লিক্স-ইউরেকা দেখুন । এই গ্রেডল ফাইলগুলি কি?!?
স্মিথ

ঠিক আছে, আমি এটি দেখতে। যতদূর আমি দেখতে পাচ্ছি, নেটফ্লিক্স থেকে বিকাশকারীরা একটি বড় build.gradleস্ক্রিপ্টকে একাধিক সংক্ষিপ্ত আকারে বিভক্ত করেছেন এবং একটি নির্দিষ্ট উদ্দেশ্যে স্ক্রিপ্টগুলিতে নিবেদিত। আপনি যেমন গ্রেড ডিয়ারের নীচে অবস্থিত স্ক্রিপ্টটি মূল build.gradleফাইলটিতে প্রয়োগ করতে পারেন তা দেখুন: github.com/Netflix/eureka/blob/master/build.gradle । আপনি যেখানে এই জাতীয় মডিউল রেখেছেন তা আপনার পছন্দ। সাধারণভাবে এটি। আপনি যদি উত্তরটির সাথে সন্তুষ্ট হন তবে দয়া করে উত্তরটি গ্রহণ করুন :)
ওপাল

1
আর একটি দরকারী কমান্ড-লাইন বিকল্প --distribution-type, উদাহরণস্বরূপgradle wrapper --gradle-version 4.3.1 --distribution-type ALL
হেনিনি

1
ধন্যবাদ @ হিন্নি, এটি আমার উত্তরে যুক্ত করবে।
ওপাল

টিপ: অ্যান্ড্রয়েড স্টুডিওর ইনস্টলেশন ফোল্ডারে একটি গ্রেডল রয়েছে।
TWiStErRob

29

গ্রেডল র‍্যাপার তৈরি করা

প্রকল্প বিল্ড গ্রেড

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

// Running 'gradle wrapper' will generate gradlew - Getting gradle wrapper working and using it will save you a lot of pain.
task wrapper(type: Wrapper) {
    gradleVersion = '2.2' 
}

// Look Google doesn't use Maven Central, they use jcenter now.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.1'

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

allprojects {
    repositories {
        jcenter()
    }
}

তারপরে কমান্ড-লাইনে রান করুন

gradle wrapper

আপনি যদি আপনার সিস্টেমে গ্রেড হারিয়েছেন তবে এটি ইনস্টল করুন বা উপরের কাজ করবে না। কোনও ম্যাকের উপরে হোমব্রিউয়ের মাধ্যমে ইনস্টল করা ভাল।

brew install gradle

আপনি সফলভাবে মোড়ক টাস্কটি চালানোর পরে এবং তৈরি করার পরে gradlew, আপনার সিস্টেম গ্রেড ব্যবহার করবেন না। এটি আপনাকে প্রচুর মাথা ব্যথা বাঁচাবে।

./gradlew assemble

উপরে দেখা গ্রেড প্লাগইন সম্পর্কে কী?

com.android.tools.build:gradle:1.0.1

আপনার সংস্করণটি সর্বশেষতম হিসাবে সেট করা উচিত এবং আপনি সরঞ্জাম পৃষ্ঠাটি পরীক্ষা করতে পারেন এবং সেই অনুযায়ী সংস্করণটি সম্পাদনা করতে পারেন ।

অ্যান্ড্রয়েড স্টুডিও কী উত্পন্ন করে তা দেখুন

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

অ্যান্ড্রয়েড স্টুডিওতে পুরানো প্রকল্পগুলি আমদানির জন্য সুবিধা রয়েছে যা সহায়তা করতে পারে।


gradleVersion = '2.2'মধ্যে taskWrapperযাই হোক না কেন সংস্করণ আমি মোড়কের জেনারেট করার জন্য ইচ্ছা, সঠিক ব্যবহার করতে পারি? গ্রেডেলের সর্বশেষতম সংস্করণ হতে হবে না?
রাফিয়ান

1
আমি মনে করি আপনি গ্রেডের 2-সিরিজে ফিরে যেতে পারেন। আমি ২.x এর আগে মোটেও নিশ্চিত নই, তবে না, এর পরম সর্বশেষতম সংস্করণ অনুসরণ করার দরকার নেই।
ক্যামেরন লোয়েল পামার

18

গ্রেডল ২.৪ হিসাবে, আপনি gradle wrapper --gradle-version X.Xআপনার build.gradleফাইলটিতে কোনও কাজ না করে গ্রেডল র‍্যাপারের একটি নির্দিষ্ট সংস্করণটি কনফিগার করতে ব্যবহার করতে পারেন । পরের বার আপনি মোড়ক ব্যবহার করবেন, এটি উপযুক্ত গ্রেডল বিতরণ মেলাতে ডাউনলোড করবে।


10

আপনি যদি উত্স এবং ডক্স সহ গ্রেডেল ডাউনলোড করতে চান তবে গ্রেড-র্যাপার.প্রোপেরিতে কনফিগার করা ডিফল্ট ডিস্ট্রিবিউশন ইউআরএল আপনার প্রয়োজনীয়তা পূরণ করবে না t এটি https://services.gradle.org/distribtions/gradle-2.10-bin.zip , https://services.gradle.org/distribitions/gradle-2.10-all.zip নয় । এই সম্পূর্ণ url টি আইডিই যেমন অ্যান্ড্রয়েড স্টুডিওর দ্বারা প্রস্তাবিত। আপনি যদি পূর্ণ গ্রেড ডাউনলোড করতে চান তবে আপনি এই জাতীয় মোড়কের কাজটি কনফিগার করতে পারেন :

task wrapper(type: Wrapper) {
    gradleVersion = '2.13'
    distributionUrl = distributionUrl.replace("bin", "all")
}

1
আরও সাম্প্রতিক বিল্ড সহ গ্রেড (ঠিক কোনটি ঠিক তা নিশ্চিত নয়) - ম্যানুয়ালি ইউআরএলটি পুনরায় লেখার পরিবর্তে একই বন্ধে ইনবিল্ট কমান্ডটি ব্যবহার করা ভাল: ডিস্ট্রিবিউশনটাইপ = র‍্যাপার.ডিসিবিউশন টাইপ.এলএল
ডেভ বার্চ

6

গ্রেডলকে মোড়কে আপগ্রেড করতে বলার জন্য এই আদেশটি ব্যবহার করা হবে যাতে এটি উত্স কোড সহ লাইব্রেরির বিতরণ সংস্করণগুলিকে ধরে ফেলবে:

./gradlew wrapper --gradle-version <version> --distribution-type all

"সমস্ত" দিয়ে বিতরণ-প্রকারের নির্দিষ্টকরণ নিশ্চিত করে যে গ্রেডল আপনার বিকাশ পরিবেশ দ্বারা ব্যবহারের জন্য উত্স ফাইলগুলি ডাউনলোড করবে।

পেশাদাররা :

  • আইডিইগুলির সোর্স কোডে তাত্ক্ষণিকভাবে অ্যাক্সেস থাকবে। উদাহরণস্বরূপ, ইন্টেলিজ আইডিইএ উত্সের ডিস্ট্রো অন্তর্ভুক্ত করতে আপনার বিল্ড স্ক্রিপ্টগুলি আপডেট করার অনুরোধ জানাবে না (কারণ এই আদেশটি ইতিমধ্যে এটি করেছে)

কনস :

  • দীর্ঘতর / বৃহত্তর বিল্ড প্রক্রিয়া কারণ এটি উত্স কোডটি ডাউনলোড করছে। এটি এমন কোনও বিল্ড বা সিআই সার্ভারে সময় / স্থানের অপচয় করা যেখানে উত্স কোডের প্রয়োজন হয় না।

গ্র্যাডলকে কোনও বিল্ড সার্ভারে উত্সগুলি ডাউনলোড না করতে বলার জন্য কোনও কমান্ড লাইন বিকল্প সম্পর্কে আপনার জানা থাকলে দয়া করে মন্তব্য করুন বা অন্য উত্তর সরবরাহ করুন।


1
আপনি কি নিশ্চিত যে এই সেটিংটি লাইব্রেরি সম্পর্কে? সরকারী দস্তাবেজ অন্যথায় বলে এবং কেবলমাত্র র‍্যাপারটিই উল্লেখ করে: "মোড়কের দ্বারা ব্যবহৃত গ্র্যাডল বিতরণের ধরণ।" docs.gradle.org/current/dsl/...
Thorsten Schöning

2
  1. আপনি এগুলি একবার তৈরি করতে পারবেন তবে আপনার যদি নতুন কোনও বৈশিষ্ট্য বা কোনও প্লাগইন থেকে এমন কিছু প্রয়োজন হয় যার পরিবর্তে আরও নতুন গ্রেড সংস্করণ প্রয়োজন them

    আপডেট করার সহজতম উপায়: গ্রেডল ২.২ অনুসারে আপনি কেবল ডাউনলোড বা সম্পূর্ণ বা বাইনারি গ্রেডেল বিতরণটি বের করতে এবং চালাতে পারেন:

    $ <pathToExpandedZip>/bin/gradle wrapper
    

    কোনও কাজ সংজ্ঞায়িত করার দরকার নেই, যদিও আপনার সম্ভবত কোনও ধরণের build.gradleফাইলের প্রয়োজন।

    এটি আপডেট করবে gradlewএবং তৈরি করবে এবং সাথে সাথে র‍্যাপারের gradlew.batপাশাপাশি gradle/wrapper/gradle-wrapper.propertiesএবং gradle-wrapper.jarগ্রেডের বর্তমান সংস্করণটি সরবরাহ করবে, মোড়ানো pped

  2. এগুলি সমস্ত মোড়কের অংশ।

  3. কিছু build.gradleফাইল সাব ডাইরেক্টরিগুলিতে অন্যান্য ফাইল বা ফাইলগুলি উল্লেখ করে যা উপ প্রকল্প বা মডিউল। এটি কিছুটা জটিল হয়ে ওঠে তবে আপনার যদি একটি প্রকল্প থাকে তবে আপনার মূলত একটি ফাইল দরকার।

  4. settings.gradleপ্রকল্প, মডিউল এবং অন্যান্য ধরণের নাম এবং সেটিংস পরিচালনা করে, gradle.propertiesআপনার গ্রেড ফাইলগুলির জন্য পুনরায় পুনরায় পরিবর্তনযোগ্য ভেরিয়েবলগুলি কনফিগার করে যদি আপনি চান এবং আপনি মনে করেন যে সেগুলি আরও পরিষ্কার হয়।


2

যেহেতু গ্রেড-বিল্ট-ইন কার্যগুলি 4.8-এ অবচিত করা হয়েছে, নীচে চেষ্টা করুন

wrapper {
   gradleVersion = '2.0' //version required
}

এবং চালান

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