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

Liferay DXPをソースコードから構築する

変更を貢献する場合、または公開リリースに含まれていない修正が必要な場合は、Liferay DXPをソースからビルドしてください。 liferay-portal リポジトリには、 Liferay DXP のソースコードが含まれています。 ソースコードからビルドすると、Liferay DXPバンドルが生成されます。

以前に Liferay Portal CE を実行していて、事前に構築されたバンドルが必要な場合は、 Liferay DXP 無料ティア を参照してください。 ソースコードからビルドするには、以下の手順に従ってください。

前提条件

構築前に以下のツールをインストールしてください。

  • JDK 17(またはJDK 21)
  • Apache Ant 1.10.14 以降
  • Git
  • Liferay Blade CLI (クライアント拡張機能または OSGi モジュールを構築する場合のみ必要です)

ビルドには付属のGradleラッパーが使用されるため、Gradleを別途インストールする必要はありません。

構築手順

  1. 作業ディレクトリを作成し、 cd でそのディレクトリに移動します。 ここでは、2つのリポジトリを並べてクローンします。

    mkdir liferay-dev
    cd liferay-dev
    
  2. 必要に応じて、 liferay-binaries-cache-2020 リポジトリをクローンしてビルドを高速化します。 それがなければ、ビルドは必要に応じて依存関係をダウンロードします。

    git clone https://github.com/liferay/liferay-binaries-cache-2020 --branch master --single-branch --depth 1
    
  3. GitHub で liferay/liferay-portal をフォークします。

  4. liferay-binaries-cache-2020 の隣にフォークをクローンしてください。

    git clone https://github.com/[your-github-user]/liferay-portal
    cd liferay-portal
    
  5. アップストリームリポジトリを追加して、 liferay/liferay-portal から変更を取得できるようにします。

    git remote add upstream https://github.com/liferay/liferay-portal
    
  6. ビルド:

    ant all
    

    バンドルは ../bundles/ に展開され、Liferay DXP がデプロイされた Tomcat アプリケーション サーバーが含まれています。

ビルドを確認するには、 ../bundles/ をリストします。 tomcat-[version] ディレクトリが表示されるはずです(例: tomcat-10.1.54)。 バンドルを開始する:

../bundles/tomcat-[version]/bin/startup.sh

次に、 http://localhost:8080 にアクセスしてください。

ビルドのカスタマイズ

app.server.properties および build.properties は、アプリケーション サーバー タイプ、バンドルの場所、ant フラグ、および同様のオプションなど、ビルドのデフォルトを文書化します。 デフォルト設定を上書きするには、兄弟関係にあるユーザー固有のファイルを作成します。 app.server.[user-name].properties または build.[user-name].properties。 ビルドは自動的にオーバーライドを検知し、変更内容はアップストリームのアップデートから隔離された状態に保たれます。

コア変更の展開

バンドルが構築された後、完全な再構築を行わずに、Liferay DXP コア プロジェクト ( portal-implportal-kernelなど) を再構築してデプロイできます。 コアコンポーネントはホットスワップに対応していないため、デプロイ後は毎回バンドルを再起動してください。

  1. バンドルがまだ実行されていない場合は、起動します。

    ../bundles/tomcat-[version]/bin/startup.sh
    
  2. 再構築して展開する。 liferay-portal ディレクトリから、 ant deploy はすべてのコア プロジェクトを再デプロイします。 単一プロジェクトを再デプロイするには、まず cd でそのディレクトリに移動します。

    cd portal-impl
    ant deploy
    
  3. 変更を反映させるには、バンドルを再起動してください。

    ../bundles/tomcat-[version]/bin/shutdown.sh
    ../bundles/tomcat-[version]/bin/startup.sh
    

モジュールのデプロイ

プラットフォームを再コンパイルすることなく、単一のOSGiモジュールまたはクライアント拡張機能を構築およびデプロイできます。 モジュールをデプロイする前に、ビルド環境が初期化されるように、ビルド手順をすべて完了させてください。

  1. モジュールのディレクトリから、以下を実行します。

    blade gw deploy
    

    blade gw は、プロジェクトの Gradle ラッパー (./gradlew の省略形です。 実行中のバンドルの osgi/ サブツリーにモジュールをデプロイします。

デプロイが成功したことを確認するには、バンドルログを ../bundles/tomcat-[version]/logs/catalina.out で確認してください。 STARTED <module-name> というエントリを探してください。以下のようなものです。

INFO [fileinstall][BundleStartStopLogger] STOPPED com.liferay.portal.workflow.web_3.0.0
INFO [Refresh Thread: Equinox Container][BundleStartStopLogger] STARTED com.liferay.portal.workflow.web_3.0.0

Liferayへの変更点の反映

変更内容はJiraチケットに記録し、GitHubのプルリクエストとして送信してください。

Jiraチケットの起票

  1. Jira アカウント にサインアップしてください。

  2. 問題についてチケット を送信してください。 問題点を明確に説明してください。 バグについては、再現手順を含めてください。

  3. 問題に合った適切なカテゴリを選択してください。

  4. 問題の影響を受ける製品の最も古いバージョンを選択してください。

  5. ソリューションを投稿 をクリックすると表示される貢献者ライセンス契約に同意してください。

既にその問題に関するチケットが存在する場合は、新しいチケットを作成するのではなく、既存のチケットを通して参加してください。

GitHubでプルリクエストを送信する

  1. 最新の upstream/master からトピックブランチを作成し、作業がフォークの master から隔離されるようにします。

    git fetch upstream
    git checkout -b my-change upstream/master
    
  2. Jiraチケットキーを参照して、論理的な作業単位をコミットします。 例えば: LPS-83432 CONTRIBUTING の例を命令形と具体的な形にする

  3. 変更内容を徹底的にテストしてください。 Liferay DXPは、多くのオペレーティングシステム、データベース、およびアプリケーションサーバーをサポートしています。 変更内容が、テストしていない設定を壊さないことを確認してください。

  4. プッシュする前に、最新のアップストリーム master にリベースしてください。

    git fetch upstream
    git rebase upstream/master
    
  5. 枝を分岐点まで押し込んでください。

    git push origin my-change
    
  6. liferay/liferay-portal リポジトリにプルリクエストを送信します。

  7. Jiraチケットに、プルリクエストへのリンクを記載してください。

プルリクエストを送信した後は、マージまたはクローズされるまで、質問に回答し、レビューコメントを確認してください。