1

私が取り組んでいる Play 2.4.6 アプリでは、stage/dist タスクでアセットが複製されています。

基本的に、これは 3 つのサブモジュールを備えたアプリであり、すべてのアセットがメインpublicフォルダーに存在します。私はsbt-web有効にしておらず、webjars の依存関係もありません (しかし、jar の内容から、Play はそれらをどこかで使用している可能性があります)。

使用すると、フォルダーPlayKeys.externalizeResources := falseに2つのjarファイルが作成されます。lib

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

最初のものには、アセットが含まれている必要があります。2 番目にはメイン プロジェクトのクラス ファイルが含まれている必要があり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 に答える