如何使用 Gradle 将 RPM 文件上传到 Artifactory? Gradle 总是使用 maven 风格的直接布局上传文件,这对于 YUM 存储库来说是不合适的。
这里的问题是 Gradle 坚持以 maven 风格的目录格式上传所有内容group-id/version/artifact
,而 yum 存储库需要平面布局。这里有两种方法 - 使用 Artifactory 插件或 Gradles 更新的发布机制。我只能让它与后者一起工作。
我假设您正在使用Gradle ospackage 插件并且已经创建了 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'
然后添加发布块:
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 的确切文件名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)