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