【问题标题】:How do I create a runnable script from within a Play Framework project?如何从 Play Framework 项目中创建可运行的脚本?
【发布时间】:2015-10-23 23:33:25
【问题描述】:

我目前有一个包含大量代码(实用程序、模块等)的游戏框架项目,我想在可运行的脚本(或程序/主程序)中使用这些代码。我的理解是,如果我将脚本设为子项目,那么我将无法使用父项目中的代码。我需要使用父项目中的代码。

我可以将脚本放在 app 目录中的某个位置,然后执行类似 sbt run-main com.foo.bar.Foobar 之类的操作。不幸的是,这(显然)并没有带来所有的 Play。没有数据库,没有全局,没有配置等等等等。基本上它不会引导播放。

除了获取我的父项目并制作我想要共享子项目的所有代码之外,还有什么方法可以完成我想要做的事情吗?

编辑:我尝试使用找到的解决方案Here,但它会导致错误提示没有应用程序正在运行。

【问题讨论】:

  • 不幸的是,该解决方案不起作用。我不确定这是因为它已经过时还是其他原因,但它不起作用。它一直在说“没有启动的应用程序”
  • 我不确定为什么有人将此标记为重复,并强迫我将我的问题标记为“其他问题的解决方案解决了我的问题”。它帮助我解决了我的问题,但至少对我来说,这是一个不完整的解决方案。

标签: scala playframework playframework-2.0


【解决方案1】:

加上我在How do I run a comand line scala script that uses Play Framework app database?http://blog.felipe.rs/2014/05/14/run-maintenance-scripts-in-the-context-of-a-running-play-framework-application/)找到的最佳解决方案,我只好按以下方式修改。

def importJogosFromCSV(csvFilePath: String) = {
    db withSession { implicit s: Session =>
      JogosCSVImporter.importJogos(csvFilePath)
    }
  }

改为:

def importJogosFromCSV(csvFilePath: String) = {
    running(application) {
      db withSession { implicit s: Session =>
        JogosCSVImporter.importJogos(csvFilePath)
      }
    }
  }

最终我需要添加运行(应用程序) 我正在使用 specs2 和 play 2.3.x

【讨论】:

  • 该博客链接已失效 :(
猜你喜欢
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多