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

フラグメントの自動デプロイ

Liferay Portal 7.3 GA1+ または Liferay DXP 7.3+

独自のツールを使用してページフラグメントを開発している場合、それらを ZIP ファイルにパッケージ化し、Liferay UI 経由でインポートすることでデプロイできます。 ただし、UI の使用に限定されません。 コマンドラインからフラグメントZIPファイルをデプロイすることも可能です。 Liferay の自動デプロイメント メカニズムを使用して、フラグメント プロジェクトを操作し、コマンド ラインから必要なサイトにフラグメントをインポートする方法を学びます。

Liferay DXP 7.4以降の場合、フラグメントコレクションはLiferay UIではフラグメントセットと呼ばれます。

自動デプロイ可能なフラグメントセットをデプロイする

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

次に、次の手順に従って、サンプルのフラグメント セットを自動デプロイします。

  1. サンプルの自動デプロイ可能なフラグメント セットをダウンロードして解凍します。

    curl https://resources.learn.liferay.com/examples/liferay-a2f8.zip -O
    
    unzip liferay-a2f8.zip
    
  2. フラグメントプロジェクトのセットとそのデプロイメント記述子をZIPファイルに圧縮します。

    cd liferay-a2f8
    
    zip -r  a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
    
  3. 新しい .zip ファイルをLiferayのDockerコンテナ内の自動デプロイフォルダにコピーすることで、フラグメントセットを記述子で指定されたサイトにインポートします。

    docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
    
  4. Docker コンソールで次のログメッセージを確認します。

    INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:263] Processing a2f8-fragments.zip
    
  5. フラグメントセットが利用可能であることを確認します。 サイト メニュー (Site Menu) を開き、 デザインフラグメントに移動します。 セットがリストに表示されます。

インポートされたフラグメントに無効なルールがある場合、ドラフトとして自動的に保存されます。

インポートされると、セットは Fragments アプリケーションで使用できるようになります。

フラグメントプロジェクトのストラクチャー

自動デプロイ可能なフラグメントプロジェクトの構造は次のとおりです。

[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 ファイルとそのデプロイメント記述子の作成が容易になります。

フラグメントセットを変更して再デプロイする

  1. プロジェクトの a2f8-jumbotron フラグメントフォルダを a2f8-set/ フォルダに移動して、サンプルのセットに新しいフラグメントを追加します。

  2. 前述のように、フラグメントセットを ZIP ファイルに圧縮します。

    zip -r  a2f8-fragments.zip a2f8-set/ liferay-deploy-fragments.json
    
  3. 上記で行ったように、ZIP ファイルを Docker コンテナにコピーして、変更されたフラグメントセットをインポートします。

    docker cp a2f8-fragments.zip $(docker ps -lq):/opt/liferay/deploy
    
  4. 新しいフラグメントを確認します。 サイト メニュー (Site Menu) を開き、 デザインフラグメントに移動して、 A2F8 セットをクリックします。 A2F8ジャンボトロンフラグメントが含まれているはずです。

    新しいフラグメントは自動デプロイされたセットに含まれます。

これで、ローカルでフラグメントセットを操作する方法、フラグメントセットにサイトを指定する方法、自動デプロイメントを使ってフラグメントセットをインポートする方法がわかりました。