为什么找不到android gradle maven发布工件捆绑包
当我同步项目时,android studio warn为什么找不到android gradle maven发布工件捆绑包,gradle,maven-publish,Gradle,Maven Publish,当我同步项目时,android studio warn无法为org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication类型的对象获取未知属性“bundleRelease”。 我添加了project.afterEvaluate{//block},但它不起作用。如何设置工件Android Gradle插件3.3.x(至少在编写此答案时发布了-alpha版本)发生了突破性的变化,任务bundleRelease被重命
无法为org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication类型的对象获取未知属性“bundleRelease”。
我添加了
project.afterEvaluate{//block}
,但它不起作用。如何设置工件
Android Gradle插件3.3.x(至少在编写此答案时发布了-alpha版本)发生了突破性的变化,任务bundleRelease
被重命名为bundleReleaseAar
因此,解决方案是使用:bundreleaseaar
而不是bundrelease
注意:任务名称中的“release”是buildType/flavor组合,因此在您的设置中可能会有所不同
一般答案:
bundleRelease
是一个任务,要找到它的新名称,您可以运行/gradlew tasks--all
,这样的答案是正确的。只需添加一个project.afterEvaluate{//block}
就可以使其正常工作。这些信息很容易被忽略
完整示例:
project.afterEvaluate{
出版{
出版物{
mavenDebugAAR(Mavenbugaar出版物){
布加尔手工艺品
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 excludes=dependencyNode.appendNode('excludes'))
dp.excludeRules.each{ExcludeRule ex->
def exclusion=exclusions.appendNode('exclusion')
exclusion.appendNode('groupId',ex.group)
exclusion.appendNode('artifactId',ex.module)
}
}
}
}
}
mavenReleaseAAR(MavenPublication){
人工制品集束器
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 excludes=dependencyNode.appendNode('excludes'))
dp.excludeRules.each{ExcludeRule ex->
def exclusion=exclusions.appendNode('exclusion')
exclusion.appendNode('groupId',ex.group)
exclusion.appendNode('artifactId',ex.module)
}
}
}
}
}
}
存储库{
马文{
名称“nexusSnapshot”
证书{
用户名“”
密码“”
}
url“”
}
马文{
名称“nexusRelease”
证书{
用户名“”
密码“”
}
url“”
}
}
}
}
这也适用于新稳定的Android Gradle插件3.2.0。现在位于com.Android.tools.build:Gradle:3.4.0
对于工件bundreleaseaar
,使用什么来代替bundreleaseaar
?@NickUnuchek似乎我们必须包装整个发布{…}
阻塞到项目中。在评估{publishing{…}}
后,它就可以工作了。感谢您用完整的示例说明这一点!它真的救了我一天!