私のプレイプロジェクトは大規模で、ルートファイルは約1Mbです。さて、scalaがコンパイルされると、ルーティングと逆ルーティングのために「メソッドコードが大きすぎます」という例外が発生しますscalaルートファイルから作成されたファイル(それも大きいです)。
したがって、サブプロジェクトなしでルートファイルを分割する必要があります。実際、コンポーネントは相互に依存しているため、プロジェクトをサブプロジェクトに分割することはできません。
私は2つの方法を試しました:
私はtechnical.routesという新しいconfファイルを追加し、中にいくつかのルートを追加し、「routes」から同じルートを削除し、「-> technical.Routes」でファイルをインポートしました。すべてがコンパイルされます。以前の例外はありませんが。コンパイルを停止すると、何度も何度も開始し、終了しないため、何かが間違っています。
私はtechnical.routesという新しいconfファイルを追加し、内部にいくつかのルートを追加し、「routes」から同じルートを削除しましたが、メインのルートファイルにインポートする代わりに、confファイルに追加しました: "application.router ="ルート、technical.routes ""。ただし、ここで宣言する必要があるルートは1つだけなので、機能しません。
どうすればいいですか?
さて、最初の方法は機能しています。私は最初から始めて、それはうまくいきました。コンパイルコマンドの前にクリーンコマンドを実行しました。古いコンパイル済みファイルが私の問題の原因だったようです。
ルートファイルのパッケージ名を重複させることはできないことに注意してください。例えば。この例では、technical.routes
ファイルにはcontrollers.technical
内のすべてのルートが含まれており、メインルートファイルにはcontrollers.technical
パッケージ内のルートを含めることはできません。
conf/routes
コンテンツ:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
-> /technical technical.Routes
GET / controllers.Dashboard.index()
conf/technical.routes
コンテンツ:
# Routes
# ~~~~
GET / controllers.technical.App.index()
ファイル名がtechnical.routesの場合は、ファイルを含めて、technical.Routes(キャップ)を記述します。
->の後のパラメータはURLプレフィックスであるため、technical.routesファイルの任意のURLにアクセスするには、プレフィックスを追加する必要があります。
http://127.0.01/technical/ {technical.routesファイルで定義されたURL}