加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – sbt插件如何获取插件中文件的路径?

发布时间:2020-12-16 18:29:30 所属栏目:安全 来源:网络整理
导读:我有一个sbt(0.11.2)插件,需要获取插件内文本文件的路径.我怎么做? baseDirectory,sourceDirectories等被设置为包含插件的项目的基础,而不是插件本身的基础. 我想向插件用户提供一个命令,从插件中的ruby文件中提取默认值,然后允许插件用户覆盖这些默认值.
我有一个sbt(0.11.2)插件,需要获取插件内文本文件的路径.我怎么做? baseDirectory,sourceDirectories等被设置为包含插件的项目的基础,而不是插件本身的基础.

我想向插件用户提供一个命令,从插件中的ruby文件中提取默认值,然后允许插件用户覆盖这些默认值.

解决方法

为什么不使用旧的 Java的Class.getResource或Class.getResourceAsStream方法?例如.像这样:

object TestPlugin extends Plugin {

  override def settings = super.settings ++ Seq(
    commands += testCommand
  )

  def testCommand = Command.command("test")(action)

  def action(state: State) = {
    try {
      val in = getClass.getResourceAsStream("/test.txt")
      val text = Source.fromInputStream(in).getLines mkString System.getProperty("line.separator")
      logger(state).info(text)
      in.close()
      state
    } catch {
      case e: Exception =>
        logger(state).error(e.getMessage)
        state.fail
    }
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读