Gradle के साथ एक Android पुस्तकालय पर कार्य के साथ पोम विन्यास (V 1.7) निर्माण उपकरण के रूप में, मैं Maven प्लगइन का इस्तेमाल किया और कार्य uploadArchives कॉन्फ़िगर कर लिया है के दोनों रिहाई और डिबग संस्करण प्रकाशित करने स्थानीय मैवेन भंडार के लिए lib।
कोड के नीचे ठीक काम करता है:Gradle और एंड्रॉयड: कई Maven कलाकृतियों प्रकाशन
// [...]
apply plugin: 'android-library'
// [...] nothing unusual
/*
* Define name of the apk output file (build/apk/<outputFile>)
*/
android.libraryVariants.all
{
variant ->
def outputName = "MyModule-${android.defaultConfig.versionName}-${variant.baseName}.aar"
variant.outputFile = new File("$buildDir/libs", outputName)
}
/*
* Publish to maven local repo (older style maven plugin)
* Used while android plugin is not fixed regarding maven-publish plugin
*
* type command "gradle uploadArchives" to publish the module into the
* local .m2 repository
*/
apply plugin: 'maven'
android.libraryVariants.all
{
variant ->
// add final apk to the 'archives' configuration
project.artifacts
{
archives variant.outputFile
}
}
def localRepoPath = "file://" + new File(
System.getProperty("user.home"), ".m2/repository").absolutePath
uploadArchives
{
repositories.mavenDeployer
{
repository(url: localRepoPath)
addFilter('debug') { artifact, file ->
artifact.name.contains("debug")
}
addFilter('release') { artifact, file ->
artifact.name.contains("release")
}
pom('debug').groupId = 'com.company'
pom('release').groupId = 'com.company'
pom('debug').artifactId = 'id'
pom('release').artifactId = 'id'
pom('debug').version = android.defaultConfig.versionName + "d"
pom('release').version = android.defaultConfig.versionName
pom.packaging = 'aar'
}
}
uploadArchives.dependsOn(assemble)
हालांकि, जब पोम विन्यास refactor करने के लिए कोशिश कर रहा है: के रूप में
uploadArchives
{
repositories.mavenDeployer
{
repository(url: localRepoPath)
addFilter('debug') { artifact, file ->
artifact.name.contains("debug")
}
addFilter('release') { artifact, file ->
artifact.name.contains("release")
}
pom.groupId = 'com.company'
pom.artifactId = 'id'
pom('debug').version = android.defaultConfig.versionName + "d"
pom('release').version = android.defaultConfig.versionName
pom.packaging = 'aar'
}
}
artifactId आउटपुट फ़ाइल के नाम के रूप में विस्तार किया गया है, और ग्रुप रूट निर्देशिका का नाम; इस प्रकार मैवेन रेपो में खराब पथ दे रहे हैं।
मैं जानना चाहते हैं क्यों कि, और शायद अगर वहाँ एक क्लीनर तरीका प्राप्त करने के लिए मैं क्या जरूरत है।
मेरी परियोजना में मुझे आउटपुट '.ar' नाम बदलने की आवश्यकता थी। इसलिए, मैंने 'archivesBaseName' को' build.gradle' में सेट किया है जिसका उपयोग 'artifactId' के लिए किया जाता है। शायद यह मदद करता है। – JJD
क्या आपने इसे समझ लिया है? –
@ युचेनज़ोंग दुर्भाग्य से नहीं, क्योंकि यह काम एक अल्पकालिक इंटर्नशिप का हिस्सा था। मुझे नहीं पता कि इस परियोजना का प्रभार किसने लिया है, और इसलिए इसे कैसे संभाला गया है। – mklj