2015-10-22 83 views
1

我目前有一個玩大量的代碼(實用程序,模塊等),我想要在可運行腳本(或程序/主)中使用的框架項目。我的理解是,如果我將腳本作爲子項目,那麼我無法利用父項目中的代碼。我需要利用父項目的代碼。如何從Play Framework項目中創建可運行腳本?

我能夠將腳本放在應用程序目錄中的某個位置,並執行某些操作,例如sbt run-main com.foo.bar.Foobar。不幸的是,這顯然不會帶來所有的Play。沒有數據庫,沒有全球,沒有配置等等等等基本上它不引導玩。

有沒有什麼辦法可以完成我想要做的事情,除了考慮我的父項目以及製作所有我想要共享子項目的代碼?

編輯:我試圖使用找到的解決方案Here,但它會導致錯誤,指出沒有應用程序正在運行。

+1

的可能的複製[如何運行comand line scala腳本,使用Play Framework應用程序數據庫?](http://stackoverflow.com/questions/23583244/how-do-i-run-a-comand-line-scala-script-that-uses-play-framework -app-database) – jsonmurphy

+0

Unforutnately該解決方案無法正常工作。我不確定這是因爲它是過時還是別的,但它不起作用。它只是說「沒有啓動應用程序」 – Commander

+0

我不確定爲什麼有人將此標記爲重複項,並迫使我將我的問題標記爲「其他問題的解決方案解決了我的問題」。它幫助我解決了我的問題,但至少對我而言,這是一個不完整的解決方案。 – Commander

回答

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與發揮2.3.x版本

+0

該博客鏈接已死: – cdmckay

相關問題