1

在 Play 2.4.6 应用程序中,我正在处理的资产在 stage/dist 任务中被复制。

基本上它是一个包含 3 个子模块的应用程序,所有资产都存在于主public文件夹中。我没有sbt-web启用并且没有 webjars 依赖项(但从 jar 内容 Play 可能在某处使用它们)。

如果我使用PlayKeys.externalizeResources := false我最终在lib文件夹中有两个 jar 文件:

  • myapp-server.myapp-server-0.9.6-assets.jar
  • myapp-server.myapp-server-0.9.6.jar

第一个包含资产,因为它应该。第二个应该包含我的主要项目类文件,但它还有一个META-INF/resources/webjars/myapp-server/0.9.6文件夹,其中包含公共文件夹中的所有资产!

如果我使用PlayKeys.externalizeResources := true我会得到完全相同的行为,但会出现额外的META-INF/resources文件夹myapp-server.myapp-server-0.9.6-externalized-resources.jar

那么我怎样才能摆脱那个额外的资产文件夹呢?我有很多资产,所以额外的文件夹增加了很多包大小......

4

1 回答 1

1

经过一番研究,似乎只是从“外部化”jar中排除了额外的文件夹:

mappings in (Compile, packageBin) ~= { (ms: Seq[(File, String)]) =>
    ms filterNot { case (file, dest) =>
        dest.contains("resources/webjars")
    }
}
于 2016-08-01T11:55:02.470 回答