In Play 2.x サブ プロジェクトはモジュラー アプリケーションを構築する方法であり、見栄えがします。
さて、核心を突くと、いくつかの問題が明らかになります。
1) Cyclical dependencies not possible (A can depend on B, but B cannot depend on A)
2) A child project cannot access a parent project
3) Routing and Assets are isolated to each sub project
私の場合、次のようにアプリケーションを構成したいと思います。
Main
Modules
-> Core
-> Model
-> Common
-> View
-> Desktop
-> Mobile
-> Controller
-> admin
-> account
-> public
ここで、管理コントローラーがモバイル リクエストを受信したとしますが、ユーザーはまだログインしていません。OK、プルする必要があります。View > Mobile > views > login > index.scala.html
コントローラーのサブ プロジェクトはビューに依存するため (その逆はありません)、ビューはコントローラー ルートにアクセスでき@form(action = admin.routes.auth)
ません。
ビューのサブ プロジェクトを破棄して、個々のコントローラー サブ プロジェクトの下にビューを保存することもできますが、それは大量のテンプレート コードの複製のレシピのように見えます。
基本的なコア、モデル、メイン (アセット、コントローラー、ビュー) のサブ プロジェクトのセットアップではすべて問題ありませんが、モバイルとデスクトップのインターフェイスをサポートする必要がある場合は、クラッド ビューと前面ビューをサポートする必要がある場合は、はるかに複雑になります。
サブプロジェクトは、単一のルート ファイルから生じる膨大なビルド時間を見ると、聖杯のように見え始めます。
実装は別の問題です。