2013-11-14 40 views
1

是否可以在Play Framework 2中定義命令行任務? 我問的原因是因爲我需要一個可執行文件,它將從我的Play項目生成XML到標準輸出。有一個外部應用程序 - 我不控制 - 它將執行它並管理它的輸出以處理XML。現在,爲了完成工作,我只是在一個動作中編寫XML並使用「wget -qO- http:// ...」獲取它,但這遠非理想。另外我也需要能夠將其部署到生產環境中。Play Framework 2命令行任務

我大量搜索解決方案,但空手而來。

+0

因此,外部應用程序是一個命令行工具,你將開始一次,只要你的遊戲應用程序還活着,它就會運行? – johanandren

+0

不,不是。更清楚的是關於[Sphinx](http://sphinxsearch.com/)索引器。在它的配置中,您可以將索引器指向一個爲stdout生成XML的可執行文件。當您運行索引器時,它會啓動該可執行文件和管道以輸出索引XML。 – dcb

+0

在這種特殊情況下,Play命令行任務只需通過Mongo集合,執行一些處理並將XML寫入stdout。這就是我需要做的,但我無法找到任何方法來實現這一點。 – dcb

回答

0

我不認爲從播放項目製作可執行的jar是理想的。無論您需要創建XML的邏輯都應放入其自己的庫中,然後才能重用。

你的遊戲應用程序可以依賴這個庫,並且你也可以創建一個新的項目,它允許你創建一個可執行的jar(這也取決於庫)。

如:

xml-generator-lib 

play-app => dependsOn xml-generator-lib 

my-executable-jar => dependsOn xml-generator-lib 

這就是說,這裏是一個簡單的遊戲應用程序,從中可以創建一個可執行的JAR:https://github.com/edeustace/executable-play-app

它使用sbt-assembly插件收集所有的罐子成一個。它也覆蓋了'main'類來指向一個呈現其中一個模板的類。它也需要管理組合jar中的重疊文件。

我懷疑部分玩法框架可能無法在此上下文中運行(沒有服務器等)。