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

如何屏蔽Play Framework路由文件中的单条废弃方法警告?

解决Play Framework路由引用废弃方法的精准警告屏蔽问题

方案1:创建转发方法(最精准,推荐)

在控制器中新增一个非废弃的转发方法,调用原废弃方法并通过@nowarn注解精准屏蔽该调用的警告:

import scala.annotation.nowarn

class MyController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
  // 原废弃方法
  @Deprecated
  def getThisIsDeprecated() = Action {
    Ok("Deprecated endpoint")
  }

  // 新增转发方法,供路由引用
  @nowarn("cat=deprecation")
  def getThisIsDeprecatedForward() = getThisIsDeprecated()
}

修改路由文件,保持原URL路径不变,将端点指向新增的转发方法(客户端无感知):

GET   /deprecated   controllers.MyController.getThisIsDeprecatedForward()

此方案仅屏蔽该转发方法的废弃警告,项目中其他废弃方法的警告会正常触发。

方案2:通过sbt编译参数屏蔽路由生成代码的警告

如果不想新增转发方法,可通过sbt的scalacOptions针对路由生成的代码文件屏蔽废弃警告。在build.sbt中添加:

scalacOptions ++= Seq(
  // 匹配路由编译生成的代码文件,仅屏蔽该文件内的废弃警告
  "-Wconf:src=target/scala-.+/routes/.*:cat=deprecation:s"
)

注意:该方案会屏蔽所有路由文件中引用废弃方法的警告,仅适合项目中仅有这一处路由引用废弃方法的场景。

内容的提问来源于stack exchange,提问作者M. Justin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:22:36