gpt4 book ai didi

gradle - 从 Gradle 将 RPM 上传到 Artifactory

转载 作者:行者123 更新时间:2023-12-02 05:11:59 25 4
gpt4 key购买 nike

如何使用 Gradle 将 RPM 文件上传到 Artifactory? Gradle 总是使用 maven 风格的直接布局上传文件,这对于 YUM 存储库来说是不合适的。

最佳答案

这里的问题是 Gradle 坚持以 group-id/version/artifact 的 maven 风格目录格式上传所有内容,而 yum 存储库需要平面布局。这里有两种方法 - 使用 Artifactory 插件或 Gradles 更新的发布机制。我只能让它与后者一起工作。

我假设您正在使用 Gradle ospackage plugin并且已经创建了 RPM 版本。在我的例子中,RPM 任务的名称是 distRpm。例如:

task distRpm(type: Rpm) {
packageName = 'my_package'
version = version
release = gitHash
arch = 'X86_64'
os = 'LINUX'
// Etc
}

将 ivy 发布插件添加到您的项目中:

apply plugin: 'ivy-publish'

然后添加发布 block :

publishing {
publications {
rpm(IvyPublication) {
artifact distRpm.outputs.getFiles().getSingleFile()
/* Ivy plugin forces an organisation to be set. Set it to anything
as the pattern layout later supresses it from appearing in the filename */
organisation 'dummy'
}
}
repositories {
ivy {
credentials {
username 'yourArtifactoryUsername'
password 'yourArtifactoryPassword'
}
url 'https://your-artifactory-server/artifactory/default.yum.local/'
layout "pattern", {
artifact "${distRpm.outputs.getFiles().getSingleFile().getName()}"
}
}
}
}

Ivy Publication 允许您指定上传的目录和文件名模式。这将被覆盖为 RPM 的确切文件名。

关于gradle - 从 Gradle 将 RPM 上传到 Artifactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com