Gradle版本:3.5
我正在尝试发布我的自定义RPM工件,但文档真的不清楚应该如何完成。
这是我们的发布gradle脚本的摘录:
project(':path:to:rpm:project') {
apply plugin: "java"
apply plugin: "maven-publish"
publishing {
repositories {
maven {
credentials {
username 'aaa'
password 'sss'
}
url "https://url/to/repository"
}
}
publications {
pub(MavenPublication) {
artifact 'our-software-rpm' {
}
}
}
}
task rpmArtifact(dependsOn: 'installerMakeRpm') {
ext.rpmfile = file("$project.buildDir/tmp/rpmbuild/RPMS/x86_64/our-software.x86_64.rpm")
}
artifacts {
archives(rpmArtifact.rpmfile) {
name 'our-software-rpm'
type 'rpm'
builtBy rpmArtifact
}
}
assemble.dependsOn rpmArtifact
}
我不确定如何在publication封闭中引用自定义RPM工件。使用工件名称('我们的软件-rpm')不起作用,使用任务名称(rpmArtifact)也不起作用。那我该怎么办?
此外,该项目应用java插件来获取实际可以接受文件工件的ArtifactHandler - DefaultArtifactHandler不适用于此。有没有更好的选择,因为该项目真的不是一个java项目,我宁愿不应用我真的不需要的插件。
答案 0 :(得分:2)
我收到了关于gradle问题列表的模糊提示,以下解决方案最终为我工作:
请注意,我仍然有不受欢迎的java插件声明,我找不到解决方法。
project(':Release:Installers:OurProject:Linux:our-project') {
apply plugin: 'java'
def myRpm = artifacts.add('archives', file("$project.buildDir/rpm/our-project-${productInfo.ai_version}.x86_64.rpm")) {
builtBy('installerMakeRpm')
}
publishing {
publications {
pub(MavenPublication) {
artifact myRpm
artifactId "our-project-installer-linux"
groupId 'com.company.ourproject'
version productInfo.release_tag
}
}
}
}