Gradle-Publish - файл pom.xml не создается

Я пытаюсь опубликовать библиотеку в репозитории AWS S3 Maven, используя руководство это. После того, как он наконец смог загрузить артефакты в корзину S3 без ошибок, я сделал это зависимостью нового проекта в соответствии с руководством.

Когда я попытался создать новый проект, возникла ошибка, в которой говорилось, что он не может найти первую из зависимостей моей библиотеки. Разумеется, не было сгенерированного файла pom.xml, который бы включал эту зависимость (и другие).

Не зная много о том, как программировать задачи Gradle, я думаю, что проблема в части скрипта pom.withXml {}. Или проблема может возникнуть раньше, поскольку нет даже пустого файла pom.xml.

Вот весь сценарий:

apply plugin: 'com.android.library'
apply plugin: 'maven-publish'

// update these next lines to fit your submodule
group = 'com.myproject'
version = '1.0'

// Add sources as an artifact
task sourceJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier "source"
}

// Loop over all variants
android.libraryVariants.all { variant ->
    variant.outputs.all { output ->
        // This creates a publication for each variant
        publishing.publications.create(variant.name, MavenPublication) {
            // The sources artifact from earlier
            artifact sourceJar

            // Variant dependent artifact, e.g. release, debug
            artifact source: output.outputFile, classifier: output.name

            // Go through all the dependencies for each variant and add them to the POM
            // file as dependencies
            pom.withXml {
                def dependencies = asNode().appendNode('dependencies')

                // Filter out anything that's not an external dependency. You shouldn't
                // be publishing artifacts that depend on local (e.g. project) dependencies,
                // but who knows...
                configurations.getByName(variant.name + "CompileClasspath").allDependencies
                        .findAll { it instanceof ExternalDependency }
                        .each {
                    def dependency = dependencies.appendNode('dependency')

                    dependency.appendNode('groupId', it.group)
                    dependency.appendNode('artifactId', it.name)
                    dependency.appendNode('version', it.version)
                }
            }
        }
    }
}

// Ensure that the publish task depends on assembly
tasks.all { task ->
    if (task instanceof AbstractPublishToMaven) {
        task.dependsOn assemble
    }
}

// Configure the destination repository with
// S3 URL and access credentials
publishing {
    repositories {
        maven {
            url "s3://sdk.myproject.com.s3.amazonaws.com"
            credentials(AwsCredentials) {
                accessKey AWS_ACCESS_KEY
                secretKey AWS_SECRET_KEY
            }
        }
    }
}

Есть идеи о том, что не так? Спасибо!

пожалуйста, включите весь раздел вокруг публикации, включая то, какой плагин вы применили.

Louis Jacomet 26.09.2018 08:49

@LouisJacomet Я включил весь сценарий. Спасибо.

ScottyB 26.09.2018 15:02
Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
2
55
0

Другие вопросы по теме