LoginSignup
5

More than 3 years have passed since last update.

posted at

updated at

Liferay 7 / DXP ポートレット自動生成ツール、Damascus

Damascusとは?

Damascus(ダマスカス)は、設定ファイルをベースに、Liferay DXP / 7.0用のCRUD機能を備えたポートレットを自動生成するツールです。これによりCRUD以外にも、以下の機能を自動生成してくれるので、開発時間の短縮に役立つツールです。

コード
https://github.com/yasuflatland-lf/damascus

ドキュメント
https://damascusweb.wedeploy.io/

Ruby on Rails, CakePHPなどの多言語のWebフレームワークでは、簡単なコマンドでCRUD機能を備えたスケルトンを生成する機能があります。Liferayは権限管理から検索、ワークフローなどをフレームワークが提供していますが、それを実際に自作するポートレットにどう組み込むかなどは、Liferayに詳しくないユーザーにとっては実装に時間がかかり、Liferay経験豊かなユーザーにとっても、繰り返し同じことを実装する時間がかかります。

実際自分がLiferayを使って仕事をしていく中で、他のSIerさんたちも直面していた問題を解決することを目指しています。

自動生成する機能

  • CRUD機能
    • CRUD用のモデル操作用API (*LocalService)と、入力・編集画面(jsp)
    • ドキュメント&ライブラリにデータを保存するためのフィールドも生成。
  • ワークフロー
  • ゴミ箱
  • 検索(Indexer自動生成)
  • コメント機能
  • 関連するアセット
  • レーティング
  • アクティビティ(アクティビティポートレットに表示される内容の制御)
  • 複数モデルに対して一括でポートレット・サービスを生成

環境要件

  • JDK 1.8 以上
  • Gradle 3.0以上がインストールされていること
  • JPMがインストールされていること(以下のインストール手順でインストール方法を説明)

インストール方法

Mac
bash
curl https://raw.githubusercontent.com/yasuflatland-lf/damascus/master/installers/global | sudo sh

Windows
1. JPM をインストール
2. 以下のようにJPMを利用して、damascus.jar をインストール。 jpm install https://github.com/yasuflatland-lf/damascus/raw/master/latest/damascus.jar

使い方

ここでは簡単に、Damascusを使ってTodoポートレットを作成してみましょう。
1. Liferay IDE / Developer Studioか、Bladeツールを利用して、Liferay Workspaceを作成してください。Liferay Workspaceの作成方法、Bladeツールなどのツールの使い方は以下を参照してください。
https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/blade-cli
2. Liferay workspaceを作成した後、modules フォルダに移動し、 damascus -init Todo -p com.liferay.sb.test -v 70を実行してください。
3. するとTodo フォルダが生成されるので、Todoフォルダに移動すると、設定ファイルのbase.jsonが生成されています。詳細な設定方法に関しては、https://github.com/yasuflatland-lf/damascus/wiki
を確認してください。ここではデフォルトのままで進めます。
4. Todoフォルダ内で、 damascus -create を実行します。すると-service、-api、*-webが自動生成されます。
5. Liferayサーバーを起動し、Todoフォルダ内でblade deployを実行すると、立ちあがったLiferayサーバーに対してデプロイされ、管理者でログイン後、右ペインからTodo-portletが配置できるようになります。

詳細な設定ファイルの設定方法や、使い方は公式サイト公式サイトのWikiを参照してください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5