গ্রেডেল বিকল্প থেকে এমভিএন ইনস্টল করুন


163

এমভিএন-তে আমার 2 টি আলাদা প্রজেক্ট বিল্ড রয়েছে। আমি গ্রেডলে প্রতিস্থাপন করার চেষ্টা করছি।

প্রকল্প 1 হ'ল এসডিকে এবং প্রকল্প 2 এসডিকে ব্যবহার করে (উদাহরণস্বরূপ)

মেভেনের সময়ে এটি এমভিএন ইনস্টল ব্যবহার করে নিদর্শন তৈরি করে যা পুরো প্রকল্পটিকে স্থানীয় সংগ্রহস্থলে যুক্ত করে।

আমি এর মতো গ্রেডে কাজ করতে পছন্দ করি। আমি প্রকল্প 1 build.gradle এর গ্রেডের স্থানীয় সংগ্রহস্থল হিসাবে পোস্ট করা দরকার এবং তারপরে উদাহরণস্বরূপ প্রকল্পটি এটি ব্যবহার করা দরকার।

মাভেনে আমরা এমভিএন ইনস্টল করি যা .m2 ফোল্ডারে একটি প্রকল্পের নিদর্শন যুক্ত করে তবে গ্রেডে কীভাবে করা যায় যাতে আমি স্থানীয় প্রকল্পের মধ্যে কোনও প্রকল্প আর্টফ্যাক্ট যুক্ত করতে পারি।

কোন উপায়ে যে আমি এটি করতে পারি?


উত্তর:


170

sdk/build.gradle:

apply plugin: "maven"

group = "foo"
version = "1.0"

example/build.gradle:

repositories {
    mavenLocal()
}

dependencies {
    compile "foo:sdk:1.0"
}

$sdk> gradle install

$example> gradle build

1
প্লাগইন প্রয়োগ করুন: "maven" এবং $ sdk> গ্রেড ইনস্টল এটি এসডিকে .m2 এ ইনস্টল করবে? এবং ম্যাভেনলোকাল () .m2 এবং .gradle থেকেও তথ্য পেয়েছে?
রাজমহেন্দ্র

14
gradle installস্থানীয় মাভেন রেপোতে প্রকাশ করে এবং mavenLocal()নির্ভরতার জন্য সেখানে সুনিশ্চিত করে।
পিটার নিদারউইজার

1
গ্র্যাডেল কি মাভেনের মতো "পর্যায়মুখী" নয়? আইওডাব্লু, আমি যদি gradle publishইচ্ছা করি তবে এটিও একটি installপর্যায়ের মধ্য দিয়ে যাবে না ?
ক্রিস এফ

74

আপনি খুঁজছেন হতে পারে:

gradle publishToMavenLocal

সাথে উপলব্ধ:

apply plugin: 'maven-publish'

দেখুন: https://docs.gradle.org/current/userguide/publishing_maven.html


3
এটি ম্যাভেন অপশনগুলির সাথেও দুর্দান্ত কাজ করছে:gradle -Dmaven.repo.local=.m2/repository publishToMavenLocal
বিরল

3
প্লাগিনের gradle installসাথে এটি কীভাবে আলাদা maven?
ম্যাট

8

পরীক্ষা করে দেখুন Gradle এর ডকুমেন্টেশন বহু-প্রকল্প তৈরী করে

কিছু অতিরিক্ত নির্ভরতা সহ এখানে একটি উদাহরণ। gradle installরুট ফোল্ডারে কেবল কল করুন , এবং সমস্তটি নির্মিত এবং আপনার স্থানীয় রেপোতে স্থাপন করা হবে।

ফোল্ডার কাঠামো:

root
+--> build.gradle
+--> settings.gradle
+--> sdk
|    +--> build.gradle
+--> example
     +--> build.gradle

রুট / build.gradle:

allprojects {
  apply plugin: 'java'
  apply plugin: 'maven'

  group = 'myGroup'
  version = '0.1-SNAPSHOT'
}

রুট / settings.gradle:

include 'sdk'
include 'example'

রুট / SDK / build.gradle:

dependencies {
  // just an example external dep.
  compile group:'commons-lang', name:'commons-lang', version:'2.3'
}

রুট / উদাহরণস্বরূপ / build.gradle:

dependencies {
  compile project(':sdk')
  compile group:'log4j', name:'log4j', version:'1.2.16'
}

4
এই আদর্শ অনুশীলন হয়? যদি তিনি একটি নতুন প্রকল্প তৈরি করতে চান, উদাহরণস্বরূপ, যা এসডিকেও নির্ভর করে? এখন তাকে 2 টি সম্পর্কযুক্ত প্রকল্প মূল প্রকল্পের আওতায় আনতে হবে কারণ তারা নির্ভরতা ভাগ করে নিচ্ছে? আপনি ভাববেন যে এই পুরো 'মাল্টি-প্রজেক্ট' সেটআপটিও হবে 1 গিট প্রকল্পের জন্য। আবার, এই সংস্থা / মাল্টি-বিকাশকারী কর্মপ্রবাহের জন্য খারাপ?
অ্যান্থনি চুইনার্ড

2

আপনার নিজের স্থানীয় গ্রন্থাগারে আপনার নিজের গ্রন্থাগার প্রকাশ করতে হবে। আপনি নিম্নলিখিত পদ্ধতিতে এটি করতে পারেন:

  1. যোগ maven-publishপ্লাগইন:

    plugins {
        // your other plugins come here...
        id 'maven-publish'
    }
    
  2. আপনার বিল্ড ফাইলটিতে প্রকাশনা বিভাগ যুক্ত করুন:

    publishing {
        publications {
            myCoolLibrary(MavenPublication) {
                from components.java
            }
        }
    }
    
  3. চালান gradle build publishToMavenLocal

    ডকুমেন্টেশনে আরও বিশদ সন্ধান করুন

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