我目前有一个带有大量代码(工具,模块等)的游戏框架项目,我想在可运行的脚本(或程序/主程序)中使用它。我的理解是,如果我将脚本作为子项目,那么我就无法利用父项目中的代码。我需要利用父项目中的代码。
我能够将脚本放在app目录中的某个位置并执行类似的操作,例如sbt run-main com.foo.bar.Foobar。不幸的是,这(显然)没有带来所有Play。没有数据库,没有全局,没有配置等等。基本上它不会自助游戏。
除了采用我的父项目并制作我想要共享子项目的所有代码之外,还有什么方法可以完成我正在尝试做的事情吗?
编辑:我试图使用找到的解决方案Here,但它会导致错误,指出没有应用程序正在运行。
答案 0 :(得分:0)
添加我在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