android - मैन्युअल रूप से निर्भरता पॉम/आईएमएल फ़ाइल के साथ हवाई जोड़ने
android-studio gradle (1)
चूंकि मैं अपनी लाइब्रेरी साझा करने के लिए एक निजी मेवेन का उपयोग नहीं कर सकता, इसलिए मैं आरार साझा करने और एक अन्य परियोजना में आयात करने में सोच रहा था। समस्या तब होती है जब हवाई और जार फ़ाइलों में कोई निर्भरता नहीं होती है इसलिए एक बार जब मैं मैन्युअल रूप से एंड्रॉइड स्टूडियो में आयात करता हूं (आयात .JAR / .a पैकेज का उपयोग करके) कोई निर्भरता नहीं है, और मुझे मैन्युअल रूप से सभी निर्भरता को फिर से जोड़ना होगा मैंने पहले से ही एक ढाला काम के माध्यम से एक pom फ़ाइल उत्पन्न की है, हालांकि मुझे मैन्युअल रूप से परियोजना पर इसे आयात करने का कोई तरीका नहीं मिल सकता है
"आयात .JAR / .a पैकेज" द्वारा स्वचालित रूप से निर्मित build.gradle फ़ाइल पर है:
configurations.maybeCreate("default")
artifacts.add("default", file('TestSample_1.0.0.aar'))
क्या पॉम / आईएमएल फ़ाइल भी जोड़ने का एक तरीका है? कुछ इस तरह:
artifacts.add("default", file('pomDependencies.xml'))
1. प्रकाशन
आपके हवाई प्रोजेक्ट में, maven-publish
प्लगइन जोड़ें और आवश्यक प्लगइन कॉन्फ़िगरेशन जोड़ें।
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
...
dependencies {
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.novoda:bintray-release:0.2.7'
}
...
publishing {
publications {
maven(MavenPublication) {
groupId 'com.example' //You can either define these here or get them from project conf elsewhere
artifactId 'example'
version '0.0.1-SNAPSHOT'
artifact "$buildDir/outputs/aar/app-release.aar" //aar artifact you want to publish
//generate pom nodes for dependencies
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.allDependencies.each { dependency ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
}
}
}
}
//publish to filesystem repo
repositories{
maven {
url "$buildDir/repo"
}
}
}
नोट करने के लिए कुछ चीजें:
हम एक कस्टम मेवेन प्रकाशन का उपयोग कर रहे हैं, इसलिए आपको यह निर्धारित करना होगा कि
artifact
खंड के साथ क्या प्रकाशित किया जा रहा हैहमें पोम को स्वयं उत्पन्न करना पड़ेगा, ऊपर कोड में मैं सभी कॉन्फ़िगर कॉन्फ़िग निर्भरता का उपयोग कर रहा हूं, आप यह सुनिश्चित करना चाह सकते हैं कि आप जिन सभी विन्यास की परवाह करें, उनमें शामिल हैं।
रनिंग gradle publish
एक मेवेन रेपो संरचना को repo
फ़ोल्डर में gradle publish
करेगा, जिसे आप एक अलग प्रोजेक्ट से उपभोग कर सकते हैं।
2. प्रकाशित का उपयोग करना
एक अलग एंड्रॉइड प्रोजेक्ट में, # 1 में प्रकाशित एयर का उपयोग करने के लिए: शीर्ष स्तर के निर्माण में .gradle:
allprojects {
repositories {
jcenter()
maven {
url "D:/full/path/to/repo"
}
}
}
पहले रेपो के लिए मार्ग को एक मेवेन रिपॉजिटरी के रूप में जोड़ें ध्यान दें कि आपको पूर्ण पथ का उपयोग करना पड़ सकता है, क्योंकि $buildDir
का इस प्रोजेक्ट के लिए एक अलग मान है अपने ऐप build.gradle में:
dependencies {
...
other dependencies
...
compile ('com.example:example:[email protected]'){transitive=true}
}
transitive=true
को pom फ़ाइल से संक्रमित निर्भरता लाने के लिए आवश्यक है।