Я пытаюсь опубликовать артефакт 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.