25

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

有没有神奇的project/Build.scala配置可以让它成为可能?我在Play中找不到它!文档

4

5 回答 5

29

Play 使用sbt-native-packager,它支持通过将任意文件添加到映射来包含它们:

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

语法假定 Play 2.2.x。

于 2013-10-24T14:38:28.230 回答
5

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

val main = play.Project(appName, appVersion, appDependencies).settings(
  // Add your own project settings here   
  playAssetsDirectories <+= baseDirectory / "app/views"
)
于 2013-04-29T20:26:28.807 回答
2

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

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

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

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

于 2012-09-02T12:14:24.950 回答
2

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

于 2017-05-23T10:56:37.707 回答
0

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

我花了一个小时来寻找解决方案……还有 15 分钟用于编写解压缩、修改、压缩文件并将文件发送到远程目的地的脚本,因此请考虑它是否也不是更好的选择。

于 2012-09-02T17:00:32.843 回答