Не удалось получить «выпуск» неизвестного свойства для SoftwareComponentInternal — Maven публикует проект плагина gradle

У меня есть проект Android с несколькими модулями, и я хочу опубликовать их в собственном репозитории maven. Раньше код публикации присутствовал в отдельных модулях, и все работало нормально. Сейчас я пытаюсь переместить код публикации в проект build.gradle, чтобы иметь возможность повторно использовать код. Код внутри моих отдельных модулей был:

afterEvaluate {
        // To avoid publishing the applications inside the project...
        if (!plugins.hasPlugin("android")) {
            publishing {
                publications {
                    mavenAar(MavenPublication) {
                        artifactId "$project.name"
                        from components.release
                    }
                }
                repositories {
                    .... My repo details and credentials .......
                }
            }
        }
    }

и все работало просто отлично. Когда я переместил код в проект build.gradle, вот так:

subprojects {
    apply plugin: 'maven-publish'

    afterEvaluate {
        // To avoid publishing of the applications inside the project ..
        if (!plugins.hasPlugin("android")) {
            publishing {
                publications {
                    mavenAar(MavenPublication) {
                        artifactId "$project.name"
                        from components.release
                    }
                }
                repositories {
                    .... My reop details and creddentials  .....
                }
            }
        }
    }
}

Я начал получать следующую ошибку при запуске задачи publish:

A problem occurred configuring project ':mymodule'.
> Could not get unknown property 'release' for SoftwareComponentInternal set of type org.gradle.api.internal.component.DefaultSoftwareComponentContainer.

Может ли кто-нибудь указать на проблему здесь?


person Swapnil    schedule 25.04.2021    source источник
comment
вы в состоянии решить эту проблему?   -  person AndroidGeek    schedule 01.06.2021
comment
Пожалуйста, какое-нибудь обновление?   -  person Fayçal    schedule 21.07.2021
comment
я разместил решение   -  person Fayçal    schedule 21.07.2021


Ответы (2)


Это сработало для меня, я добавил еще один afterEvaluate.

subprojects {
  apply plugin: 'maven-publish'

  afterEvaluate {
    // To avoid publishing of the applications inside the project ..
    if (!plugins.hasPlugin("android")) {
        publishing {
            publications {
                mavenAar(MavenPublication) {
                    afterEvaluate {
                       artifactId "$project.name"
                       from components.release
                    }
                }
            }
            repositories {
                .... My reop details and creddentials  .....
            }
        }
     }
   }
}
person Fayçal    schedule 21.07.2021

Я столкнулся с той же ошибкой. Решил это с помощью кода ниже:

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                groupId = 'mygroup'
                artifactId = 'common'
                version = '1.0.0'
                artifact(bundleReleaseAar)
            }
        }
    }
}

Кажется, вы должны указать точный путь к файлу AAR. Более подробную информацию вы можете найти в этом ответе: https://stackoverflow.com/a/60936807/971355

person ka3ak    schedule 13.06.2021
comment
похоже вы невнимательно читали о чем спрашивается выше - person Fayçal; 21.07.2021