Playframework 忽略dist任务上的依赖项jar

Playframework 忽略dist任务上的依赖项jar,playframework,sbt,sbt-native-packager,Playframework,Sbt,Sbt Native Packager,我有一个Play 2.3.x应用程序,它包含一些子项目,我使用dist生成完整应用程序的zip包 问题是这个包太大了,因为它包含了应用程序运行所需的所有依赖项(例如:scala、play libs、db driver等),并且需要大量时间才能上传到服务器 我想知道:有没有可能告诉disttask忽略一些jar,而不将它们包含在生成的zip文件中?其想法是在服务器上有这些依赖项,并有一个自定义启动脚本将所有这些DEP添加到类路径中,并且只部署一个较小的zip,其中只有我的代码/资产JAR 这可能吗

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

问题是这个包太大了,因为它包含了应用程序运行所需的所有依赖项(例如:scala、play libs、db driver等),并且需要大量时间才能上传到服务器

我想知道:有没有可能告诉
dist
task忽略一些jar,而不将它们包含在生成的zip文件中?其想法是在服务器上有这些依赖项,并有一个自定义启动脚本将所有这些DEP添加到类路径中,并且只部署一个较小的zip,其中只有我的代码/资产JAR


这可能吗?

dist任务来自。版本0.7.4用于剧本2.3沿袭

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


编辑:正如Muki在评论中指出的,这里是相关文档的一个示例。

您能展示一个小示例吗(例如:在生成的包中只包含
junit.junit-4.10.jar
)?当然,有点匆忙,但有一种方法可以做到这一点:有一些。映射非常简单:source:File->dest:String元组。您可以根据需要对其进行筛选。例如,
Universal中的映射:=(Universal中的映射).value.filter{case(source,dest)=>dest包含“lib/”}
已经有一个用于此的。然而,关于包装什么和不包装什么,这确实是一件大而复杂的事情。作为第一步,我建议使用proguard之类的工具来减少类文件的数量。