গ্রেড প্লাগইন প্রয়োগে কী পার্থক্য


185

আমি গ্রেড প্লাগইন ব্লক বুঝতে পারি না

apply plugin: 'someplugin1'
apply plugin: 'maven'

এবং অন্য একটি:

plugins {
   id 'org.hidetake.ssh' version '1.1.2'
}

প্রথম ব্লকে আমাদের কিছু প্লাগইন নাম রয়েছে। দ্বিতীয় এক প্যাকেজ এবং সংস্করণে। আমি বুঝতে পারি না আমার প্রথম ব্লকটি কখন ব্যবহার করা উচিত এবং কখন দ্বিতীয়টি।


30
গ্রেডল সহ, একই জিনিসটি করার 2+ উপায় দেখার জন্য প্রস্তুত হন!
পাওলো মেরসন

6
গ্রেডল হ'ল বিল্ড সিস্টেমের পার্ল।
সাকরা

উত্তর:


176

pluginsপ্ল্যাগইন অবরোধ প্রয়োগের নতুন পদ্ধতি, এবং তারা মধ্যে উপলব্ধ থাকা আবশ্যক Gradle প্লাগইন সংগ্রহস্থলেরapplyপদ্ধতির পুরোনো, আপনার বিল্ড জন্য প্লাগইন যোগ করার এখনো নমনীয় পদ্ধতি।

নতুন pluginsপদ্ধতিটি বহু-প্রকল্প কনফিগারেশনে ( subprojects, allprojects) কাজ করে না, তবে প্রতিটি শিশু প্রকল্পের জন্য বিল্ড কনফিগারেশনে কাজ করবে।

আমি ভাবব যে কার্যকারিতা যত বাড়ছে pluginsকনফিগারেশন পদ্ধতিটি পুরানো পদ্ধতির ছাড়িয়ে যাবে, তবে এই সময়ে উভয়ই হতে পারে এবং একই সাথে ব্যবহার করা যেতে পারে।


4
মনে রাখবেন, প্লাগইন ডিএসএল ( plugins {...}) ব্যবহার করে একটি প্লাগইন প্রয়োগ করা আপনার ব্যক্তিগত প্লাগইনগুলি বা কোম্পানির প্লাগিনগুলির জন্য কাজ করে না যা অফিসিয়াল গ্রেডল প্লাগইন রেপোতে প্রকাশিত হয় না। এ কারণেই আমি আশা করি যে পুরানো পদ্ধতিটি কমপক্ষে বেঁচে থাকবে যতক্ষণ না নতুন ব্যক্তি ব্যক্তিগত সংগ্রহস্থলগুলিতে অনুসন্ধান সমর্থন করে না।
ডাটজ

2
pluginsগ্রেডেল টিউটোরিয়াল অনুসারে মাল্টি-প্রজেক্টে কাজ করে (গ্রেডল সংস্করণ ৫..6.২ ) গাইডস.gradle.org/creating-mult-project-builds/… এটি সামগ্রিক প্রকল্পে প্লাগইন যুক্ত করতে pluginsব্লক ব্যবহার apply falseকরে, তবে যুক্ত করে না এটি মূল প্রকল্পে। pluginsপ্লাগ-ইন যুক্ত করতে সাবপ্রজেক্ট আবার ব্লক ব্যবহার করে।
ইয়াতসুন

pluginsওভার ব্যবহারের আসলেই কোনও লাভ নেই apply plugin
সাকরা

1
2020 এবং আমি এখনও ব্যবহার করছিapply plugin
ব্লুন্ডেল

এটি একেবারে ভয়ানক, সম্পূর্ণ ভিন্ন সিনট্যাক্স এবং ইনপুট সহ দুটি দিকনির্দেশনা, যার শীর্ষে বেমানান। জাভা এবং কোটলিন ব্যবহার করার সময় গ্র্যাডল ঘাড়ের মধ্যে সবচেয়ে বড় ব্যথা।
খ্রিস্টান

57

@ সিজেস্টেহ্নো ইতিমধ্যে উল্লিখিত হিসাবে এটি apply pluginহ'ল একটি উত্তরাধিকার পদ্ধতি যা আপনার এড়ানো উচিত।

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

নতুন plugins blockপদ্ধতির সাহায্যে আপনি একটি প্লাগইন যুক্ত করতে পারেন এবং anচ্ছিক পরামিতি ব্যবহার করে কখন এটি প্রয়োগ করতে পারেন apply:

plugins {
    id «plugin id» version «plugin version» [apply «false»]
}

আপনি এখনও আপনার pluginsব্লকটিতে ইতিমধ্যে যুক্ত হলেও প্রয়োগকৃত প্লাগইন প্রয়োগ করতে চান এমন পরিস্থিতিতে উত্তরাধিকার পদ্ধতিটি ব্যবহার করবেন । উদাহরণস্বরূপ, মাস্টার প্রকল্পে একটি প্লাগইন xyzযুক্ত করা হয় তবে প্রয়োগ করা হয় না এবং এটি কেবল একটি সাবপ্রজেক্টে প্রয়োগ করা উচিত subPro:

plugins {
  id "xyz" version "1.0.0" apply false
}

subprojects { subproject ->
    if (subproject.name == "subPro") {
        apply plugin: 'xyz'
    }
}

লক্ষ্য করুন যে আপনার আর সংস্করণটির দরকার নেই। সংস্করণে প্রয়োজন বোধ করা হয় pluginsব্লক, যদি না আপনি যেমন কোর Gradle প্লাগইনগুলির এক ব্যবহার করছেন java, scala...

আমি একটি Spring Bootঅ্যাপ্লিকেশন তৈরি করার চেষ্টা করার সময় পার্থক্যটি বোঝার জন্য কিছু সময় ব্যয় করেছি এবং সে কারণেই আমি এটির পরে আবার উত্তর দিচ্ছি। Spring Bootপ্লাগইন ব্যবহারের জন্য নিম্নলিখিত উদাহরণটি আমাকে অনেক সহায়তা করেছে:

বর্তমানে কী ব্যবহার করা উচিত:

plugins {
  id "org.springframework.boot" version "2.0.1.RELEASE"
}

গ্রেডেল ২.১ এর আগে যা ব্যবহার করা হয়েছিল:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE"
  }
}

apply plugin: "org.springframework.boot"

এটি কোনওভাবে ভুল ধারণা দেয়। কেউ কেবল রূপান্তর apply plugin xxxকরতে পারে না plugins { id xxx }(আমি এটি চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি)
খ্রিস্টান

আমি মনে করি উত্তর এবং উদ্ধৃত ডকুমেন্টেশন এটিকে পরিষ্কারভাবে বলেছে। এটি আপনার ক্ষেত্রে নির্ভর করে। আপনি আপনার কেস সম্পর্কে আরও তথ্য সরবরাহ করতে পারেন বা এটি একটি অন্য প্রশ্নে পোস্ট করতে পারেন।
মৌসা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.