web-dev-qa-db-ja.com

Play Framework:Playのデフォルトパッケージを変更するにはどうすればよいですか?

Playからデフォルトのパッケージを変更できるかどうか疑問に思っていました。例:「controllers」パッケージを「com.test.controllers」に変更したい。これが意味があるかどうかはわかりませんが、それが可能かどうかを知りたいだけです。プレイのウェブサイトでこれに関連するものは何も見つかりませんでした。

34
Alan Souza

play1と2の区別を明確にするために更新されました。

Play 1.xの場合、これは不可能です。

いいえ、すべてのコントローラーは、コントローラーのパッケージまたはサブパッケージに含まれている必要があります。 com.testパッケージ構造を維持したい場合は、controllers.com.testを実行できます。

詳細については、 このスレッドを参照してください。

Play2.xの場合、これは可能です。必要なパッケージにすべてを移動するだけです。最も外側のapp/ディレクトリが外側にあることを確認してください。例はplay-project/app/com.company/controllersです。

つまり、簡単な答えは...使用しているPlayのバージョンによって異なります。

6
Codemwnci

current Play 2.0のドキュメントによると、これが可能になりました。

Play 2.0では、コントローラー、モデル、およびビューのパッケージ名の規則がそれだけになり、必要に応じて変更できることに注意してください(すべてにcom.yourcompanyのプレフィックスを付けるなど)。

これは空のPlayアプリケーションでうまく機能しますが、他の点で注意すべき詳細がいくつかあります。

  1. カスタム名前空間のビューテンプレートへのインポートは、テンプレートの最初の行で宣言されているタイプを除くすべてのタイプで機能します。これは、scalaの引数です。ビューから生成されるrender関数。回避策は、ビューテンプレートの最初の行の型宣言に完全なパッケージ名を追加することです。
  2. ルートファイルで定義されているすべての名前空間(カスタムパッケージやアセットルートのデフォルトパッケージなど)について、Play 2.0は同じ名前空間内に対応するルートソースファイルを生成するため、たとえば次の場合は正しいファイルをアドレス指定するように注意する必要があります。リダイレクトを行います。
21
Sam

手動 から:

Controllerクラスは、controllersパッケージで定義する必要があり、play.mvc.Controllerのサブクラスである必要があります。

コントローラパッケージの直下で定義されていない場合は、コントローラクラス名の前にJavaパッケージを追加できます。controllersパッケージ自体は暗黙的です。 、したがって、指定する必要はありません。

つまり、controllersパッケージをcom.test.controllersに変更することはできません(ルートパッケージはcontrollersでなければならないため)が、controllers.com.testに変更することはできます。

13
dogbane

これについての議論があります ここ

また、FAQには this があります。

1
Rich