如何制作Play!framework dist命令将一些文件/文件夹添加到最终包中



我想要这部剧!framework dist命令将一些文件夹和文件添加到最终的zip文件中。它们是应用程序工作所必需的。

有没有一种神奇的project/Build.scala配置使其成为可能?我在剧中找不到它!文档

Play使用sbt原生打包程序,它通过将任意文件添加到映射中来支持包含这些文件:

mappings in Universal ++=
  (baseDirectory.value / "scripts" * "*" get) map
    (x => x -> ("scripts/" + x.getName))

语法假设Play 2.2.x.

我的Play应用程序没有在可分发文件中包括模板文件(在app/views/中),我在Build.scala:中添加了这些文件

val main = play.Project(appName, appVersion, appDependencies).settings(
  // Add your own project settings here   
  playAssetsDirectories <+= baseDirectory / "app/views"
)

通过查看dist源代码,我认为这是不可能的。

但您可以使用play clean compile stage命令来打包应用程序及其依赖项(来自文档):

这将清理和编译您的应用程序,检索所需的依赖项,并将它们复制到目标/暂存目录。它还创建一个运行Play服务器的目标/启动脚本。

然后,您必须编写自己的脚本来添加目录并构建zip。

不确定支持哪个Play版本,但Play!2.5文档建议您可以将任何想要打包的任意文件添加到"dist"文件夹下(位于项目的根目录下)。我正在使用SBT原生打包程序将我的项目构建到RPM中,这是开箱即用的。

我敢打赌我不会让你满意,但也许你不会浪费时间搜索。正如Nico指出的那样,不存在这种可能性,您可以使用的最快方法是编写bash脚本(或*.bat文件)来实现这一点。

我花了一个小时寻找解决方案。。。还有15分钟的时间来编写脚本,解压缩、修改、压缩文件并将其发送到远程目的地,所以考虑一下它是否对您来说也是更好的选择。

最新更新