Liferay Workspaceの開発ライフサイクル

Liferay Workspacesは、Liferayモジュールの開発ライフサイクルのすべてのフェーズをサポートする環境を提供します。

このチュートリアルでは、Liferay Workspaceが提供する開発ライフサイクルフェーズについて説明します。それから、特定のツール(例: Blade CLIやLiferay Dev Studio DXP)用のワークスペースの特定のライフサイクルフェーズを活用するための詳細を説明している、他のチュートリアルへと進みます。

プロジェクトの作成

Liferay Workspaceの開発フェーズの最初のステップは、プロジェクトの作成プロセスです。Workspaceには、さまざまな種類のLiferayプロジェクトを作成するのに使用できるテンプレートが多数用意されています。また、WorkspaceはLiferay JS Toolkitで作成されたフロントエンドポートレットの開発サポートも提供します。 これらは、デフォルトではmodulesフォルダに保存されています。

ワークスペースがモジュールを作成する場所を設定するには、ワークスペースのgradle.propertiesファイルのliferay.workspace.modules.dirプロパティを編集します。デフォルトでは、モジュールは[ROOT]/modulesフォルダに作成されます。

また、gradle.propertiesファイル内にあるliferay.workspace.themes.dirプロパティを指定することにより、テーマの作成場所も制御できます。テーマは通常、Liferay Theme Generatorを使用して作成された後にthemesフォルダに移行されます。

Workspaceは、WARプロジェクトを作成する方法も提供します。WARプロジェクトは、gradle.propertiesファイルのliferay.workspace.wars.dirプロパティで設定されたフォルダに作成されます。WARスタイルのプロジェクトを作成するプロジェクトテンプレートがいくつかあり 、warsフォルダに保存する必要があります。

Blade CLIまたはLiferay Dev Studioを使用して、ワークスペース内にプロジェクトを作成する方法の詳細については、Creating Projects with Blade CLICreating Modules with Liferay Dev Studioのチュートリアルをそれぞれ参照してください。

プロジェクトのビルド

Liferay Workspaceは多くのビルド要件を抽象化するので、ビルド方法を気にすることなくプロジェクトの開発に集中することができます。Liferay WorkspaceはGradleを使用してビルドされているため、プロジェクトはGradleビルドライフサイクルを活用します。

WorkspaceのROOTフォルダ(例: gradlew)にGradleラッパーが含まれており、Gradleコマンドを実行するために活用できます。つまり、Gradleをマシンにインストールすることなく、Liferay Workspaceから使い慣れたGradleビルドコマンド(例: buildcleancompileなど)を実行できます。

Liferay Workspaceを使用すると、ワークスペースのプラグインが自動的に適用されます。これにより、多数のサブプロジェクトが追加され、Gradleの複雑さが隠れます。たとえば、典型的なプロジェクトであるsettings.gradleファイルには、以下のようなサブプロジェクトが多数含まれています。

...
include images:base:oracle-jdk:oracle-jdk-6
include images:base:oracle-jdk:oracle-jdk-7
include images:base:oracle-jdk:oracle-jdk-8
include images:base:liferay-portal:liferay-portal-ce-tomcat-7.1-ga1
include images:source-bundles:glassfish
include images:source-bundles:jboss-eap
include images:source-bundles:tomcat
include images:source-bundles:websphere
include images:source-bundles:wildfly
include compose:jboss-eap-mysql
include compose:tomcat-mariadb
include compose:tomcat-mysql
include compose:tomcat-mysql-elastic
include compose:tomcat-postgres
include file-server
...

ワークスペースのプラグインが自動的に行うので、これらのサブプロジェクトの適用について心配する必要はありません。同様に、/themesフォルダ内にあるフォルダにliferay-theme.jsonファイルが含まれる場合、gulpプラグインがそのファイルに適用されます。/modulesフォルダ内にあるフォルダにbnd.bndファイルが含まれる場合は、liferay-gradleプラグインがそのファイルに適用されます。すべてのワークスペースアプリに自動的に提供されるLiferay Gradleプラグインのリストについては、Gradleのリファレンス記事を参照してください。このように、Liferay Workspaceは開発プロセスを便利にするために、多くのプラグインとビルド設定をバックグラウンドで提供しています。

Gradleビルドライフサイクルの抽象化の良い例として、ワークスペースでのプロジェクトのデプロイプロセスが挙げられます。Gradleコマンドを実行することなく、ワークスペースからモジュールをビルド/デプロイできるのです。次は、これを行う方法について説明します。

プロジェクトのデプロイ

Liferay Workspaceでは、使いやすいデプロイメカニズムを提供しており、カスタム設定なしでLiferayサーバーにプロジェクトをデプロイすることができます。Blade CLIまたはLiferay Dev Studio DXPを使用してワークスペースからプロジェクトをデプロイする方法の詳細については、Deploying Projects with Blade CLIおよびDeploying Modules with Liferay Dev Studio DXPのチュートリアルにそれぞれアクセスしてください。

プロジェクトのテスト

Liferayでは、Liferay DXP 7.1用の構成設定を多数提供しています。特定の動作をシミュレート/テストするために、いくつかの異なるLiferay DXPのインストールを設定するのは、面倒かつ時間がかかってしまうことがあります。しかし、Liferay Workspaceを使用すると、環境設定を簡単に整理し、それらの設定で環境インストールを作成することができます。

Liferay Workspaceには、同じワークスペースで異なる環境を設定することができるconfigsフォルダがあります。たとえば、一つのLiferay Workspaceで、開発、テスト、および実稼働用に個別のLiferay DXP環境設定を設定することができるのです。

このconfigsフォルダには、5つのサブフォルダがあります。

  • common: すべての環境に適用する、共通の設定を保持します。
  • dev: 開発設定を保持します。
  • local: ローカルでテストするための設定を保持します。
  • prod: 実稼働サイトの設定を保持します。
  • uat: UATサイトの設定を保持します。

これらの環境だけではありません。あらゆる環境をシミュレートするために、任意のサブフォルダをconfigsフォルダに作成することができます(例: awsdocker、など)。 各環境のフォルダは、portal-ext.propertiesやElasticsearchなどの独自のデータベースを提供できます。各フォルダ内のファイルは、ワークスペース内から作成されるLiferay DXPインストールをオーバーレイします。

図1:configs/commonおよびconfigs/[environment]は、作成されたときにLiferay DXPバンドルをオーバーレイします。

ワークスペースがLiferay DXPバンドルを作成すると、以下のことが起こります。

  1. configs/commonフォルダにある設定ファイルが、バンドルに適用されます。

  2. 設定されたワークスペース環境(devlocalproduat、など)は、commonフォルダの既存の設定に加えて適用されます。

ワークスペースの/bundlesフォルダに特定の環境設定でLiferay DXPバンドルを作成するには、以下を実行します。

./gradlew initBundle -Pliferay.workspace.environment=[ENVIRONMENT]

ワークスペースの/buildフォルダにディストリビューションが可能なLiferay DXPインストールを作成するには、以下を実行します。

./gradlew distBundle[Zip|Tar] -Pliferay.workspace.environment=[ENVIRONMENT]

ENVIRONMENT変数は、適用したい設定フォルダ(devlocalproduat、など)と一致している必要があります。

configsフォルダの使用をシミュレートするために、典型的なシナリオを考えてみましょう。 テスト用のローカルのLiferay DXPインストールと、実稼働サイトのシミュレーション用のUATインストールが必要だとします。2つの環境に対して、以下の設定が必要だと仮定します。

ローカル環境

  • ローカルホストを指す、MySQLデータベースを使用する。
  • セットアップウィザードをスキップする。

UAT環境

  • ライブサーバーを指す、MySQLデータベースを使用する。
  • セットアップウィザードをスキップする。

ワークスペースでこれら2つの環境を設定するには、以下の手順に従います。

  1. configs/commonフォルダを開き、setup.wizard.enabled=falseプロパティを持つportal-setup-wizard.propertiesファイルを追加します。

  2. configs/localフォルダを開き、portal-ext.propertiesファイル内のローカルホストのMySQLデータベース設定を設定します。

  3. configs/uatフォルダを開き、portal-ext.propertiesファイル内のライブサーバーのMySQLデータベース設定を設定方法します。

  4. これで、2つの環境が設定されたので、以下を使ってそのうちの一つを作成します。

    ./gradlew distBundle[Zip|Tar] -Pliferay.workspace.environment=uat
    

    これで、2つの環境を正常に設定し、そのうちの1つが作成できました。

これで、Liferay Workspaceを使用してさまざまなLiferay DXPバンドル環境をテストできるようになりました。

プロジェクトのリリース

Liferay Workspaceは組み込みのリリースメカニズムを提供していませんが、ワークスペースで外部のリリースツールを使用する簡単な方法があります。最も一般的な選択肢は、プロジェクトをMaven Nexusリポジトリにアップロードすることです。Artifactoryのような他のリリースツールを使用することもできます。

プロジェクトをリモートリポジトリにアップロードすると、他のワークスペース以外のプロジェクトと共有する必要がある場合に便利です。また、プロジェクトを公開する準備ができている場合は、公開リモートリポジトリにプロジェクトをアップロードすると、他の開発者がプロジェクトを使用できるようになります。

ワークスペースのプロジェクト用に、Maven Nexusリポジトリを設定する方法の詳細については、Creating a Maven RepositoryおよびDeploying Liferay Maven Artifacts to a Repositoryのチュートリアルを参照してください。

« Liferay Workspaceのプロキシ要件の設定Liferay Workspaceのターゲットプラットフォームの管理 »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています