忽略 dist 任务的依赖 jar

Ignore dependency jars on dist task

我有一个 Play 2.3.x 应用程序,它包含一些子项目,我使用 dist 生成完整应用程序的 zip 包。

问题是这个包太大了,因为它包含应用程序 运行 所需的所有依赖项(例如:scala、播放库、数据库驱动程序等),并需要一个很多时间上传到服务器。

我想知道:是否可以告诉 dist 任务忽略其中一些 jar 并且不将它们包含在生成的 zip 文件中?我的想法是在服务器上拥有这些依赖项和一个自定义启动脚本,以将所有这些依赖项添加到类路径中,并且只部署一个较小的 zip,只有我的 code/assets 个罐子。

这可能吗?

dist 任务来自 sbt-native-packager。版本 0.7.4 用于 Play 2.3 沿袭。

如果您 运行 sbt show universal:mappings 您将获得项目中所有当前包含的内容的输出。因此,通过修改 mappings 键,您可以开始(小心地)过滤掉您想要的任何内容。

编辑:正如 Muki 在评论中指出的那样,这是相关文档的 direct link