Gradle опубликовать RPM для Nexus Yum Repo не удается на файл sha1 - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь опубликовать артефакт RPM из нашего проекта в репозитории Yum на Nexus через Gradle:

publishing {
    repositories {
        ivy {
            url 'http://myrepo:8081/repository/myproject'
            credentials {
                username "aaa"
                password "xxx"
            }
            layout "pattern", {
                artifact "${buildRpm.outputs.getFiles().getSingleFile().getName()}"
            }
        }

        publications {
            rpm(IvyPublication) {
                artifact buildRpm.outputs.getFiles().getSingleFile()
            }
        }
    }
}

Когда я запускаю ./gradlew publish, эта задача поднимается и начинает загружать основную.об / мин артефакт 90MB.Затем происходит сбой после этого со следующей ошибкой:

> Task :search:publishRpmPublicationToIvyRepository FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':search:publishRpmPublicationToIvyRepository'.
> Failed to publish publication 'rpm' to repository 'ivy'
   > Could not write to resource 'http://myrepo/repository/myproject/myproject-1.23.4.noarch.rpm.sha1'.
      > Could not PUT 'http://myrepo/repository/myproject/myproject-1.23.4.noarch.rpm.sha1'. Received status code 400 from server: Invalid path for a Yum repository

Как я могу предотвратить загрузку файла .sha1?Я только хочу, чтобы RPM был загружен (что, по-видимому, единственное, что разрешено в этом репо).

Я также пытался использовать maven-publish вместо ivy-publish, но в обоих случаях возникают похожие проблемы.maven-publish пытается загрузить .pom с похожей ошибкой.

Я могу вручную загрузить RPM, используя curl, но я бы предпочел сделать это с помощью плагинов и стандартов Gradle.

...