android - 更新 Gradle 插件后 Android maven 发布 Artifact 错误

标签 android gradle groovy artifactory

您好,我正在使用 Android Studio 并进行以下设置:

Android Studio版本-北极狐

Google 服务 - com.google.gms:google-services:4.3.8

AGP:com.android.tools.build:gradle:7.0.4

gradle版本:https://services.gradle.org/distributions/gradle-7.0.2-bin.zip

我正在尝试使用以下代码在我的内部 Artifact 上发布一个 Artifact

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'maven-publish'
    id 'com.jfrog.artifactory'
}

publishing {
    publications {
        aar(MavenPublication) {
            groupId libraryGroupId
            version libraryVersion
            artifactId libraryArtifactId

            artifact("$buildDir/outputs/aar/abc-release.aar")
//
            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')
                def deps = configurations.implementation.allDependencies + configurations.api.allDependencies
                deps.each {
                    if (it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null && !"unspecified".equals(it.version)) {
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', it.group)
                        dependencyNode.appendNode('artifactId', it.name)
                        dependencyNode.appendNode('version', it.version)
                    }
                }
            }
        }
    }
}

artifactory {
    contextUrl = 'http://artifactory.local.com/artifactory'
    publish {
        repository {
            repoKey = libraryGroupId
            username = "${artifactory_user}"
            password = "${artifactory_password}"

        }
        defaults {
            publications('aar')
            publishArtifacts = true
            properties = ['qa.level': 'basic', 'dev.team': 'core']
            publishPom = true
        }
    }
}

我正在尝试使用以下命令发布 Artifact :

./gradlew :module:clean && ./gradlew :module:assembleRelease && ./gradlew :module:artifactoryPublish

它给了我以下问题:

* What went wrong:
 Some problems were found with the configuration of task ':module:artifactoryPublish' (type 'ArtifactoryTask').
- Type 'org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask' field 'mavenPublications' without corresponding getter has been annotated with @Input, @Optional.
  
  Reason: Annotations on fields are only used if there's a corresponding getter for the field.
  
  Possible solutions:
    1. Add a getter for field 'mavenPublications'.
    2. Remove the annotations on 'mavenPublications'.
  
  Please refer to https://docs.gradle.org/7.0.2/userguide/validation_problems.html#ignored_annotations_on_field for more details about this problem.
- Type 'org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask' field 'publishConfigs' without corresponding getter has been annotated with @InputFiles, @Optional.
  
  Reason: Annotations on fields are only used if there's a corresponding getter for the field.
  
  Possible solutions:
    1. Add a getter for field 'publishConfigs'.
    2. Remove the annotations on 'publishConfigs'.
  
  Please refer to https://docs.gradle.org/7.0.2/userguide/validation_problems.html#ignored_annotations_on_field for more details about this problem.
- Type 'org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask' property 'deployDetails' is missing an input or output annotation.
  
  Reason: A property without annotation isn't considered during up-to-date checking.
  
  Possible solutions:
    1. Add an input or output annotation.
    2. Mark it as @Internal.
  
  Please refer to https://docs.gradle.org/7.0.2/userguide/validation_problems.html#missing_annotation for more details about this problem.
- Type 'org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask' property 'evaluated' is missing an input or output annotation.
  
  Reason: A property without annotation isn't considered during up-to-date checking.
  
  Possible solutions:
    1. Add an input or output annotation.
    2. Mark it as @Internal.
  
  Please refer to https://docs.gradle.org/7.0.2/userguide/validation_problems.html#missing_annotation for more details about this problem.

 * Try:

更新 gradle 版本后开始出现问题。在较旧的 gradle 版本上,我能够发布 Artifact 。

最佳答案

感谢@nilkash 建议修复。

确认将 jfrog 版本更新到 org.jfrog.buildinfo:build-info-extractor-gradle:4.28.1 解决了我的问题。

关于android - 更新 Gradle 插件后 Android maven 发布 Artifact 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70755791/

相关文章:

android - 无法启动 Activity 组件信息

gradle - Gradle依赖关系的可视化表示

grails - Grails BootStrap:无方法签名:* .addTo *适用

groovy - XmlSlurper:如何更改动态节点的文本

Android MediaRecorder 将其写入套接字

android - 如何让两个单独的按钮在一个 Activity 中做两件不同的事情?

android - 使用 FCM 注册应用程序后,当应用程序处于前台或后台时,通知不会发送到设备

spring - 运行 bootRun 并使用不同的 application.properties 文件

java - 在 android studio 1.0 版本中生成 LibGdx 项目?

java - 从现有变量创建映射(例如,相当于 JavaScript 的 `{varA, varB, varC}` 的 Java)