एंड्रॉइड में, ग्रैडल के साथ संकलन, परियोजनाओं के बीच कोड कैसे साझा करें?

ग्राडल बनाने के लिए दो ऐप्स बनाने के दौरान दो परियोजनाओं के बीच कुछ कोड (उदा। एक वर्ग वर्ग) साझा करने का पसंदीदा तरीका क्या है?

क्या मैं अतिरिक्त जार फाइलें बनाये बिना ऐसा कर सकता हूं? मैं सिर्फ ऐप परियोजनाओं के बाहर बैठने के लिए अपना कोड चाहता हूं, दोनों ऐप परियोजनाओं में आयात/संकलित किया जाना चाहिए। या यह बस संभव नहीं है?

मैं उस दृष्टिकोण से परिचित हूं जो जार या एंड्रॉइड लाइब्रेरी प्रोजेक्ट का उपयोग करता है, लेकिन दोनों थोड़ा अनावश्यक लगते हैं।

0
आप सामान्य कोड को ग्रैडल सब-प्रोजेक्ट में डाल सकते हैं।
जोड़ा लेखक CommonsWare, स्रोत

1 उत्तर

ऐसा करने का मेरा पसंदीदा तरीका इसे स्थानीय मैवेन रेपो में रखकर है। रेपो भी आपके एससीएम में रह सकता है, इसलिए यह वर्कस्पेस में समान है।

एक नया एंड्रॉइड स्टूडियो प्रोजेक्ट बनाएं और फिर इसे अपने build.gradle कॉन्फ़िगरेशन के मेवेन प्रोजेक्ट के रूप में सेट करें:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android-library'
apply plugin: 'maven'

repositories {
    mavenCentral()
}

configurations {
    archives {
        extendsFrom configurations.default
    }
}

group = 'com.mypackage.mylibrary'
version = '1.0.0'

uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            repository(url: uri("relative/path/to/localrepo"))
            pom.project {
                artifactId 'mylibrary'
                name 'My Library'
                packaging 'aar'
            }
        }
    }
}
android {
   //copy old android config here
}

इससे पहले कि आप इसका उपयोग कर सकें, आपको लाइब्रेरी को तैनाती करने की आवश्यकता होगी। अपलोडआर्क कार्य का उपयोग करके ऐसा करें [./gradlew uploadArchives]

अब आप इस पुस्तकालय का उपयोग करके किसी भी परियोजना में इसका उपयोग करने में सक्षम होना चाहिए:

repositories {
    maven { url 'relative/path/to/localrepo' }
}
dependencies {
    compile ('com.mypackage.mylibrary:1.0.0')
}

जब आप अपनी लाइब्रेरी में परिवर्तन करते हैं, तो आपको एक नए संस्करण के साथ फिर से तैनाती (अपलोडआर्चिव) को फिर से तैनात करना होगा, फिर किसी भी प्रोजेक्ट को नए संस्करण की आवश्यकता वाले निर्भरता संदर्भ को अपडेट करना होगा।

0
जोड़ा