是否可以在 Play Framework 2 中定义命令行任务?我问的原因是因为我需要一个可执行文件,它将从我的 Play 项目生成 XML 到标准输出。有一个外部应用程序(我无法控制)将执行它并通过管道输出它以处理 XML。现在,为了完成工作,我只是在一个动作中编写 XML 并使用“wget -qO- http://....”获取它,但这远非理想。此外,我还需要能够将其部署到生产中。
我广泛寻找解决方案,但空手而归。
是否可以在 Play Framework 2 中定义命令行任务?我问的原因是因为我需要一个可执行文件,它将从我的 Play 项目生成 XML 到标准输出。有一个外部应用程序(我无法控制)将执行它并通过管道输出它以处理 XML。现在,为了完成工作,我只是在一个动作中编写 XML 并使用“wget -qO- http://....”获取它,但这远非理想。此外,我还需要能够将其部署到生产中。
我广泛寻找解决方案,但空手而归。
我认为从 play 项目制作可执行 jar 并不理想。无论创建 xml 需要什么逻辑,都应该放入它自己的库中,然后可以重用。
然后,您的 play 应用程序可以依赖此库,您还可以创建一个新项目,允许您创建可执行 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插件将所有 jar 集中到一个中。它还覆盖“主”类以指向呈现模板之一的类。它还需要管理组装 jar 中的重叠文件。
我怀疑播放框架的某些部分可能无法在这种情况下运行(没有服务器等)。