Почему андроид gradle maven опубликовать комплект артефактов выпуска не найдено
Когда я синхронизирую проект, Android Studio предупреждает could not get unknown property 'bundleRelease' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
я добавить project.afterEvaluate{//block}
, но это не работает. Что я должен сделать, чтобы установить artifact
1 ответ
Плагин Android Gradle 3.3.x (по крайней мере, альфа-релизы на момент написания этого ответа) имеет серьезные изменения, задача bundleRelease
был переименован в bundleReleaseAar
Таким образом, решение заключается в использовании: bundleReleaseAar
вместо bundleRelease
,
Примечание: "release" в имени задачи - это комбинация buildType/flavour, поэтому она может отличаться в вашей настройке.
Общий ответ: bundleRelease
задача найти новое имя, которое вы можете запустить ./gradlew tasks --all
Так что ответ от Artem Zinnatullin правильный. Только одно дополнение, project.afterEvaluate{//block}
необходимо, чтобы это работало. Эта информация может быть пропущена очень легко.
Полный пример:
project.afterEvaluate {
publishing {
publications {
mavenDebugAAR(MavenPublication) {
artifact bundleDebugAar
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.api.allDependencies.each { ModuleDependency dp ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dp.group)
dependencyNode.appendNode('artifactId', dp.name)
dependencyNode.appendNode('version', dp.version)
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)
}
}
}
}
}
mavenReleaseAAR(MavenPublication) {
artifact bundleReleaseAar
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.api.allDependencies.each { ModuleDependency dp ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dp.group)
dependencyNode.appendNode('artifactId', dp.name)
dependencyNode.appendNode('version', dp.version)
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 {
name 'nexusSnapshot'
credentials {
username '<User with deployment rights>'
password '<User password>'
}
url '<URL to nexus>'
}
maven {
name 'nexusRelease'
credentials {
username '<User with deployment rights>'
password '<User password>'
}
url '<URL to nexus>'
}
}
}
}