したがって、回避策はかなり単純で、Googleグループで提案されましたが、ドキュメントには不明瞭な部分があります。何をすべきかを段階的に説明します.
1. ドメイン モデルを論理的に分離する
これは、ドメイン クラスがビューまたはコントローラーから何も呼び出してはならないことを意味します。
2. ドメイン クラスを含むサブプロジェクトを作成する
ここに与えられたいくつかの情報。サブプロジェクトは default play のプロジェクトと非常に似ており、作成はそれほど難しくありません。Play のコンソールからこれを行うためのツールが見つからないため、手動でいくつかのフォルダーを作成する必要があります。
まず、メイン プロジェクトのフォルダー内にサブプロジェクト フォルダーを作成します。domain-dataという名前を付けたとしましょう。次に、標準アプリで説明されているように、必要なフォルダーを作成します。レイアウト。ほとんどの場合、作成したサブフォルダーに単純なディレクトリ ツリーを作成します。
app
└ models
└ myclasses
すべてのドメイン クラスをサブプロジェクトのディレクトリ ツリーに移動します。
3.構成
設定は簡単です。メイン プロジェクトのプロジェクトフォルダーに移動し、 Build.scalaファイルを開きます。これは、SBT ビルド システム用のビルド スクリプトです。
最初にいくつかの依存関係を定義します。ビルド ファイルに次の文字列を追加します。
val domainDependencies = Seq(
"org.projectlombok" % "lombok" % "0.11.4"
)
これにより、Lombok の jar がサブプロジェクトに追加されます。サブプロジェクト定義を作成します。
val domainProject = PlayProject(
"domain-data", appVersion, domainDependencies, path=file("domain"), mainLang=JAVA
)
パスがサブプロジェクトのフォルダーを指す必要がある場所。
そして最後のステップは、サブプロジェクトに依存させるためにメインプロジェクトの構成を更新することです。依存関係には、メイン プロジェクトの再構築ごとにサブプロジェクトの再構築が伴います。
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).dependsOn(domainProject)
結局、端末で与えられたplayコマンドでメイン プロジェクトを起動し、 projectsコマンドを入力します。新しいサブプロジェクトが表示されるはずです。
4.利益
Lombok を使用して既存のコードを安全にリファクタリングする時が来ました。