Android studio aar 上传maven 解决依赖传递问题

Android studio aar 上传maven 解决依赖传递问题

apply plugin: 'maven-publish'

publishing {
    publications {
        aarSDk(MavenPublication) {
            artifact "build/outputs/aar/adsdk-debug.aar"
            groupId groupIdValue
            artifactId artifactIdName
            version versionCode
            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')
                configurations.implementation.allDependencies.withType(ModuleDependency) { ModuleDependency dp ->
                    if (dp.version != "unspecified") { // 过滤项目内library引用
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', dp.group)
                        dependencyNode.appendNode('artifactId', dp.name)
                        dependencyNode.appendNode('version', dp.version)

                        // for exclusions
                        if (dp.excludeRules.size() > 0) {
                            def exclusions = dependencyNode.appendNode('exclusions')
                            dp.excludeRules.each { ExcludeRule ex ->
                                def exclusion = exclusions.appendNode('exclusion')
                                exclusion.appendNode('groupId', ex.group)
                                exclusion.appendNode('artifactId', ex.module)
                            }
                        }
                    }
                }
            }
        }
    }

    repositories {
        maven {
            if (!Boolean.parseBoolean(useLocal) && project.hasProperty('MAVEN_USERNAME') && project.hasProperty('MAVEN_PASSWORD')) {
                url 'http://112.33.13.244:8087/repository/maven-public/'
                credentials {
                    username MAVEN_USERNAME
                    password MAVEN_PASSWORD
                }
            } else {
                url "$rootDir/repo"
            }
        }
    }

}

task publishToMaven(dependsOn: ['assemble', 'publish']) {
    doLast {
        if (!Boolean.parseBoolean(useLocal)) {
            println "finish publish  to  maven"
        } else {
            println "finish publish  to  maven directory:--> $rootDir/repo"

        }
    }
}

publishToMaven.setGroup('SDKPush')



#版本号
versionCode=1.0.1
#上传artifactId名称
artifactIdName=adx
#上传groupId名称
groupIdValue=com.cmdc.adx
#maven私服用户名
MAVEN_USERNAME=admin
#maven私服密码
MAVEN_PASSWORD=cmdc@2019@nexus
# 是否使用本地maven仓库
useLocal=false

你可能感兴趣的:(android)