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を参照してください。