フラグメントの自動デプロイ
利用可能 Liferay Portal 7.3 GA1+ または Liferay DXP 7.3+
独自のツールでページフラグメントを開発している場合 、Liferay UIでインポートするためにZIPファイルにパッケージすることでデプロイすることができます。 ただし、UI の使用に限定されません。 コマンドラインからフラグメントZIPファイルを展開することも可能です。 ここでは、フラグメントプロジェクトを扱う方法と、Liferayの自動展開の仕組みを使ってコマンドラインから好きなサイトにフラグメントをインポートする方法を学びます。
Liferay DXP 7.4+では、フラグメントコレクションはLiferay UIではフラグメントセットと呼ばれています。
自動デプロイ可能なフラグメントセットをデプロイする
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75。
http://localhost:8080でLiferayへのサインインします。 メールアドレス[email protected]_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。
次に、以下の手順に従って、例のフラグメントセットを自動配備します。
自動展開可能なフラグメントセットの例 をダウンロードし、解凍する。
curl https://resources.learn.liferay.com/dxp/latest/en/site-building/developer-guide/developing-page-fragments/liferay-a2f8.zip -O
unzip liferay-a2f8.zip
フラグメントプロジェクトのセットとそのデプロイメントディスクリプターをZIPファイルに圧縮する。
cd liferay-a2f8
zip -r a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
新しい
.zip
ファイルを Liferay の Docker コンテナの auto-deploy フォルダにコピーして、フラグメントセットを記述子指定のサイトにインポートします。docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
Docker コンソールで次のログメッセージを確認します。
INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:263] Processing a2f8-fragments.zip
フラグメントセットが利用可能であることを確認します。 サイトメニュー(
) を開き、 [デザイン] → [フラグメント] に移動します。 セットがリストに表示されるはずです。
インポートしたフラグメントに無効なルールがある場合、自動的にドラフトとして保存されます。
フラグメントプロジェクトのストラクチャー
自動展開可能なフラグメントプロジェクトは、このような構造になっています。
[project ZIP]
├── [fragment-set]
│ ├── collection.json
│ └── [fragment]
│ └── fragment files ...
└── liferay-deploy-fragments.json
liferay-deploy-fragments.json
ファイルは、フラグメントをデプロイするスコープを指定します。
- システム全体 (すべてのインスタンス)
- 仮想インスタンス(会社)
- あるサイト(グループ)。
この例では、仮想インスタンス(liferay.com)内の「Guest」というサイト(グループ)にデプロイする設定にしています。
{
"companyWebId": "liferay.com",
"groupKey": "Guest"
}
このJSONファイルのキーはどちらもオプションです。 liferay-deploy-fragments.json
ファイルで、空の JSON 要素を指定するか、この設定を追加することで、フラグメントをシステム全体(すべてのインスタンス)で利用可能にすることができます。
{
"companyWebId": "*"
}
フラグメントリソース付きをシステムレベルで利用可能にする場合、インポートはサポートされていません。
フラグメントツールキットの npm run compress
コマンド は、フラグメント ZIP ファイルとその配置記述子の作成を容易にします。
フラグメントセットを変更して再デプロイする
以下の手順で、フラグメントセットを修正し、再展開してください。
プロジェクトの
a2f8-jumbotron
fragment フォルダーをa2f8-set/
フォルダーに移動して、サンプルセットに新しいフラグメントを追加します。上記と同様に、フラグメントセットをZIPファイルに圧縮する。
zip -r a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
前回と同様にZIPファイルをDockerコンテナにコピーして、修正したフラグメントセットをインポートします。
docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
新しいフラグメントの有無を確認する。 [サイトメニュー](
) を開き、 [デザイン] → [フラグメント] に移動し、 [A2F8セット] をクリックします。 A2F8ジャンボトロンの断片が含まれているはずです。
これで、フラグメントセットをローカルで操作する方法、フラグメントセットのサイトを指定する方法、自動配置を使用してインポートする方法がわかりました。