Contributing to Liferay Development
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Organizing the Source

liferay-portal リポジトリは大きいですが、そのレイアウトはいくつかの規則的なパターンに従っています。 一度パターンを覚えれば、ほぼすべての機能のコードを見つけることができる。

トップレベルレイアウト

このリポジトリには主に2つのコード領域があります。

  • ポータル コア — レガシー プラットフォーム コードはまだモジュールに抽出されていません。 最上位ディレクトリは、 portal-impl (コア実装)、 portal-kernel (公開 API と共有ユーティリティ)、および portal-web (サーバーレンダリングされた UI アセット) です。

  • モジュール — liferay-portal/modules/ 配下の機能モジュール。 ほとんどのモジュールは Liferay MVC パターンに従い、 -api-service、および -web モジュールのペアとして提供されます。

    • -api — 機能が他のモジュールに公開するパブリック Java インターフェース。
    • -サービス — サービスビルダーによって生成されたビジネスロジックと永続性。
    • -ウェブ - UIコード(ポートレット、JSP、設定、アセットレンダリング)。 ほとんどのバグ修正とUI変更はここで行われます。

実例:ブログモジュール

blogs モジュール グループ ( liferay-portal/modules/apps/blogs/ の下) は、標準的なレイアウトを示しています。 これには blogs-apiblogs-serviceblogs-web、およびいくつかのサポートモジュール (blogs-recent-bloggers-webblogs-item-selector-webなど) が含まれます。

blogs-web モジュールには、ブログウィジェットコードの大部分が含まれており、一般的な UI モジュールが使用するフレームワーク統合を示しています。 以下の各項目は、キーファイルとそれが実装するフレームワークの概念を対応付けています。

コンポーネントblogs-web/src/main/... のパス目的
ポートレットのエントリポイントjava/com/liferay/blogs/web/internal/portlet/BlogsPortlet.javaOSGi @Component プロパティを介してポートレットを宣言します。 クラスは ビューテンプレート 初期化パラメータを宣言していません。 MVCRenderCommand がディスパッチを処理します。
レンダリングコマンドを表示java/com/liferay/blogs/web/internal/portlet/action/ViewMVCRenderCommand.java/ および /blogs/view をエントリ JSP にディスパッチします。
メインビューJSPresources/META-INF/resources/blogs/view.jspブログウィジェットの主要なUIエントリポイント。
アセットレンダラーjava/com/liferay/blogs/web/internal/asset/model/BlogsEntryAssetRenderer.javaブログ記事をアセットとしてレンダリングし、アセットパブリッシャーや同様のコンテキストで表示できるようにします。
パネルエントリーjava/com/liferay/blogs/web/internal/application/list/BlogsPanelApp.java商品メニューにブログの管理項目を追加します。
ポートレットインスタンスの設定java/com/liferay/blogs/web/internal/configuration/BlogsPortletInstanceConfiguration.javaシステム設定で設定可能なパラメータを公開します。
スケジューラージョブjava/com/liferay/blogs/web/internal/scheduler/CheckEntrySchedulerJobConfiguration.javaスケジューラジョブパターンを使用して、ブログ記事の定期的なチェックを設定します。
フレンドリーなURLマッパーjava/com/liferay/blogs/web/internal/portlet/route/BlogsFriendlyURLMapper.javaマップはレンダリングを行い、SEOに最適化されたパスにURLを変換します。
動的インクルードjava/com/liferay/blogs/web/internal/servlet/taglib/BlogsPortletHeaderJSPDynamicInclude.javaフラグメントバンドルを使用せずに、ポートレットヘッダーにマークアップを挿入します。
テンプレートハンドラを表示するjava/com/liferay/blogs/web/internal/portlet/display/template/BlogsPortletDisplayTemplateHandler.javaデフォルトのJSPの代わりにFreeMarkerを使用するアプリケーション表示テンプレート(ADT)を有効にします。
サンプル表示テンプレートresources/com/liferay/blogs/web/portlet/display/template/dependencies/portlet_display_template_basic.ftlFreeMarkerでブログ記事を一覧表示する、すぐに使えるADT(抽象データ型)。

これらは、 blogs-web モジュールが使用するフレームワークのサブセットです。 liferay-portal/modules/apps/の下のほとんどのモジュールで同じパターンが繰り返されるため、1 つのモジュールのレイアウトを調べると、コードベースの残りの部分のマップが得られます。

関連項目