当前位置: 首页 > 知识库问答 >
问题:

为什么android gradle maven发布工件bundleRelease找不到

戚俊人
2023-03-14

当我同步项目时,android studio warn 无法获取 org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication 类型的对象的未知属性 'bundleRelease'。

我添加了<code>项目。afterEvaluate{//block},但它不起作用。我应该如何设置<code>工件

共有2个答案

彭炳
2023-03-14

因此,Artem Zunnatullin的回答是正确的。只需添加一个<code>项目。后求值{//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>'
            }
        }
    }
}
陶柏
2023-03-14

Android Gradle Plugin 3.3.x(在撰写本答案时至少发布了-alpha版本)有了突破性的变化,任务< code>bundleRelease被重命名为< code>bundleReleaseAar

所以解决方法是使用:< code>bundleReleaseAar而不是< code>bundleRelease。

注意:任务名称中的“release”是buildType/flavor组合,因此在您的设置中可能会有所不同。

通用答案:bundleRelease是一个任务,要找到它的新名称你可以运行./gradlew任务--all

 类似资料:
  • 有关错误的更多信息: 未能执行goal org.springframework.boot:spring-boot-maven-plugin:2.4.3:repackage(repackage)on project HelloWorldProject:执行goal org.springframework.boot:spring-boot-maven-plugin:2.4.3with org.spri

  • 我最近不得不在工作中买一台新电脑,重新安装包括Maven在内的所有编程工具。现在我正试图发布一个项目变更,但我无法让Maven发布生效。 我运行了mvn release:prepare from Eclipse,它成功地完成了 - 从来没有任何文件夹在C:\用户\bls\Git\事件\EMBEDDED\bin C:\Maven\apache-maven-3.3.3\bin包括mvn.bat和mvn

  • 问题内容: 我正在尝试打开一个保存在源文件夹本身中的CSV文件名“ logger.csv”。 但是,这一直在给我一个“找不到文件”错误。 问题答案: 如果您现在就使用相对路径,则该文件需要存在于项目根目录中, 而不是 存在于java文件的目录中。 考虑以下层次结构: 不管用。 将 现在 的工作。(注意,该文件与src目录相邻。)

  • 我正在尝试使用GitHub将Gradle Java应用程序部署到Heroku。回购协议的名称是“v-m-test”。这是我目前使用的Procfile:web:java-jar-target/v-m-test。罐子这是错误的文件吗?

  • 问题内容: 我在asp.net项目的Content文件夹中有一个json文件: …以及访问它的代码: …但是调用代码时什么也没发生;浏览器控制台说:“无法加载资源:服务器响应状态为404(未找到)” 为什么找不到?“波浪号文件名”不是通往文件的正确路径吗? 更新 我还尝试了向后“重击”: …并且得到相同的结果(“ 无法加载资源:服务器以404(未找到)状态进行响应 ”) 更新2 然后,我尝试了这种

  • 我正在使用Eclipse和Gradle。Twilio被列为依赖项。所有版本都是最新的。引用Gradle的代码将无法编译,并返回Twilio类不存在的错误消息。在线代码令人沮丧地过时了。我希望这里有人能帮忙。 我正在运行的代码非常基本: