অ্যান্ড্রয়েড গ্রেডের নির্ভরতা হিসাবে গিট সংগ্রহস্থলটিকে ঘোষণা করা কি সম্ভব?


112

আমি mavencentral থেকে আমার lib এর মাস্টার সংস্করণ ব্যবহার করতে চাই।

অ্যান্ড্রয়েড গ্রেডের নির্ভরতা হিসাবে গিট সংগ্রহস্থলটিকে ঘোষণা করা কি সম্ভব?


3
আপনি কি কোন সমাধান খুঁজে পেয়েছেন?
সাহির সাইয়েদ

উত্তর:


150

আমার জন্য সবচেয়ে ভাল উপায়:

https://jitpack.io

পদক্ষেপ 1. সংগ্রহস্থলের শেষে build.gradle- এ জিটপ্যাক সংগ্রহস্থল যুক্ত করুন:

repositories {
    // ...
    maven { url "https://jitpack.io" }
}

পদক্ষেপ 2. ফর্মের মধ্যে নির্ভরতা যুক্ত করুন

dependencies {
    compile 'com.github.User:Repo:Tag'
}

মাস্টার শাখায় সর্বশেষ প্রতিশ্রুতি তৈরি করা সম্ভব, উদাহরণস্বরূপ:

dependencies {
    compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}

6
আপনি যদি সর্বশেষতম মাস্টার চান তবে -SNAPSHOT jitpack.io/docs/#snapshots
Andrejs

5
এটি আমার অনুমান স্প্যাম। তবে আমি সত্যিই বলতে চাই যে jitpack.io সত্যিই সত্যিই শীতল ..............
এরিক

5
নিশ্চিত করুন যে আপনি এটিকে মূল বিভাগে buildscript
রেখেছেন

"ট্যাগ" কি ??
মাকালেলে

@ মাকালেলে, "TAG" হ'ল একটি গিট ট্যাগ (কোনও ট্যাগযুক্ত প্রতিশ্রুতি, উদাহরণস্বরূপ, কিছু প্রকাশ)। দস্তাবেজগুলি
রৌদ্রের দিন

40

অথবা আপনি এটির মতো একটি সাবমডিউল হিসাবে একটি সংগ্রহস্থল নিবন্ধন করতে পারেন

$ git submodule add my_sub_project_git_url my-sub-project

তারপরে আপনার সেটিংস.gradle ফাইলটিতে প্রকল্পটি অন্তর্ভুক্ত করুন যা দেখতে এটির মতো হওয়া উচিত

include ':my-app', ':my-sub-project'

শেষ অবধি, আপনার অ্যাপ্লিকেশন বিল্ড.gradle ফাইলের মতো নির্ভরতা হিসাবে প্রকল্পটি সংকলন করুন

dependencies {
  compile project(':my-sub-project')
}

তারপরে, আপনার প্রকল্পটি ক্লোন করার সময়, আপনাকে কেবল --recursiveগিটটি স্বয়ংক্রিয়ভাবে মূল সংগ্রহস্থল এবং তার সমস্ত সাবমডিউলগুলি ক্লোন করার বিকল্প যুক্ত করতে হবে।

git clone --recursive my_sub_project_git_url

আমি আসা করি এটা সাহায্য করবে.


আমি সাধারণত মন্তব্যগুলিতে এটি লিখি না, তবে এই ক্ষেত্রে আমাকে কেবল বলতে হবে "পবিত্র ছি, ডুড! এতো দুর্দান্ত, ধন্যবাদ মানুষ!" :-)
এল বুটজ

আমি @ মিস্টারস্মিতের সাথে একমত, গিট সাবমডিউলগুলি প্রায়শই আপনাকে এবং অন্যকে কামড়ানোর জন্য ফিরে আসে ..
এও_

13

গ্রেডে এখন একটি নতুন বৈশিষ্ট্য রয়েছে যা আপনাকে গিট থেকে উত্স নির্ভরতা যুক্ত করতে দেয়।

আপনাকে প্রথমে settings.gradleফাইলটিতে রেপো সংজ্ঞায়িত করতে হবে এবং মডিউল শনাক্তকারীকে এটি মানচিত্র করতে হবে:

sourceControl {
    gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
        producesModule("org.gradle.cpp-samples:utilities")
    }
}

এবং এখন আপনার মধ্যে build.gradleআপনি একটি নির্দিষ্ট ট্যাগকে নির্দেশ করতে পারেন (উদাহরণস্বরূপ: 'v1.0'):

dependencies {
    ...

    implementation 'org.gradle.cpp-samples:utilities:v1.0'
}

অথবা একটি নির্দিষ্ট শাখায়:

dependencies {
    ...

    implementation('org.gradle.cpp-samples:utilities') {
        version {
            branch = 'release'
        }
    }
}

আদেশ সহকারে:

  • গ্রেডেল 4.10 বা উচ্চতর প্রয়োজনীয়
  • প্রমাণীকরণ এখনও সমর্থন করে না

তথ্যসূত্র:


এটি আইডিই এর সাথেও কাজ করতে পারলে দুর্দান্ত হবে: আমি আমার অ্যান্ড্রয়েড প্রকল্পে (অ্যান্ড্রয়েড স্টুডিও ৩.৪.১ সহ) আমার একটি লাইব্রেরির জন্য সোর্স কন্ট্রোল ব্যবহার করার চেষ্টা করেছি, আইডিই "গ্রেডল সিঙ্ক" করতে সক্ষম হয় না এবং উত্স ফাইলগুলি করতে পারে না লাইব্রেরিটি দেখুন না ... .. তবে যদি আমি "./gradlew build" ব্যবহার করে কমান্ড লাইনটি তৈরি করি তবে সবকিছু কাজ করে।
gabry

আমি নিশ্চিত যে এটি কেবল আমার কিনা তবে আমি এটি নিয়ে অনেক সমস্যার মুখোমুখি হয়েছি, বিশেষত যখন লাইব্রেরিতে ডেটাবাইন্ডিং থাকে। একটির জন্য গ্রেড স্ক্রিপ্টটি একটি এনপিই নিক্ষেপ করে এবং গিট রেপো অটো তৈরির সময় ডেটাবাইন্ডিং সংকলকটির জন্য এসডিকে ফোল্ডারটি সনাক্ত করতে পারে না। android.googlesource.com/platform/tools/base/+/… আমি আমার স্থানীয় প্রতিশ্রুতিবদ্ধ হওয়া শেষ করেছি তবে আমি অন্যান্য ইস্যুগুলিতেও
ছড়িয়ে পড়েছি

6

আমার মনে হয় না গ্রেডল নির্ভরতা হিসাবে গিট সংগ্রহস্থল যোগ করতে সমর্থন করে। আমার কাজটি হ'ল:

  • ঘোষণা করুন যে মূল প্রকল্পটি ফাইল সিস্টেমের অন্য কোনও প্রকল্পের উপর নির্ভর করে
  • নির্ভরতা হিসাবে ঘোষিত ফোল্ডারে গিট রেপোকে স্বয়ংক্রিয়ভাবে ক্লোন করার একটি উপায় সরবরাহ করুন

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

ধরে নিই যে আপনি লাইব্রেরি প্রকল্পের ফোল্ডারটি একই ফোল্ডারে রাখতে চান যা মূল প্রকল্পের ফোল্ডার,

আপনি করতে পারেন:

শীর্ষ-স্তরের সেটিংসে উদাহরণস্বরূপ, ফাইল সিস্টেমের অবস্থানের ভিত্তিতে গ্রন্থাগার সংগ্রহস্থলটিকে একটি প্রকল্প হিসাবে ঘোষণা করুন

// Reference:  https://looksok.wordpress.com/2014/07/12/compile-gradle-project-with-another-project-as-a-dependency/

include ':lib_project'
project( ':lib_project' ).projectDir = new File(settingsDir, '../library' )

গিট সংগ্রহস্থল থেকে গ্রন্থাগার ক্লোন করতে গ্রেড-গিট প্লাগইন ব্যবহার করুন

    import org.ajoberstar.gradle.git.tasks.*

    buildscript {
       repositories { mavenCentral() }
       dependencies { classpath 'org.ajoberstar:gradle-git:0.2.3' }
    }

    task cloneLibraryGitRepo(type: GitClone) {
            def destination = file("../library")
            uri = "https://github.com/blabla/library.git"
            destinationPath = destination
            bare = false
            enabled = !destination.exists() //to clone only once
        }

আপনার প্রকল্পের নির্ভরতাগুলিতে, বলুন যে আপনার প্রকল্পের কোড গিট প্রকল্পের ফোল্ডারের উপর নির্ভর করে

dependencies {
    compile project(':lib_project')
}

গ্রেডল এখন নির্দিষ্ট সীমাবদ্ধতার সাথে উত্স নির্ভরতা সমর্থন করে। এখানে
মিস্টার স্মিথ

5

আমি যে নিকটতম জিনিসটি পেয়েছি তা হ'ল https://github.com/bat-cha/gradle-plugin-git-d dependferences তবে আমি এটিকে অ্যান্ড্রয়েড প্লাগইনের সাথে কাজ করতে পারি না, গিটের পরেও ম্যাভেন থেকে টানতে চেষ্টা করে চলেছি repos বোঝা হয়।

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