You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy转Kotlin DSL:Nebula插件Rpm任务创建报错求助

解决Kotlin DSL中Nebula RPM任务创建的"Unresolved reference: Rpm"错误

出现这个错误的核心原因是Kotlin DSL需要显式导入插件提供的类,不像Groovy会自动导入相关类型。以下是具体的解决步骤:

1. 修正插件配置(推荐方式)

将apply(plugin = "nebula.rpm")替换为plugins块声明,更符合Kotlin DSL的规范,同时确保插件版本一致:

plugins {
  id("nebula.ospackage") version "8.3.0"
  id("nebula.rpm") version "8.3.0"
}

2. 正确创建Rpm任务

有两种可行的方式:

方式一:显式导入Rpm类

在build.gradle.kts顶部导入Nebula的Rpm类,然后直接引用创建任务:

import com.netflix.gradle.plugins.rpm.Rpm

val buildRpm by tasks.creating(Rpm::class) {
  // 这里添加Rpm任务的具体配置,示例:
  packageName = "your-app"
  version = "2.1.0"
  release = "1"
  arch = "x86_64"
  
  println("building")
}

方式二:使用全限定类名(无需导入)

如果不想添加导入语句,可以直接使用Rpm类的全限定名称:

val buildRpm by tasks.creating(com.netflix.gradle.plugins.rpm.Rpm::class) {
  println("building")
  // 任务配置...
}

推荐:使用Gradle延迟任务注册

Gradle官方推荐用tasks.register实现延迟任务创建,性能更优:

import com.netflix.gradle.plugins.rpm.Rpm

tasks.register<Rpm>("buildRpm") {
  println("building")
  // 任务配置...
}

完成以上配置后,重新运行./gradlew buildRpm即可正常执行任务。

内容的提问来源于stack exchange,提问作者JPV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:27:11