null Alfresco SDK 4.6で開発環境を構築する

こんにちは。今回は2023年6月にリリースされたSDK 4.6を使ってAlfrescoの開発環境を構築する手順をご紹介します。GitHubのREADMEの Important Notice about Version Numbers によると、Enterprise版やCommunity版の7.xをカスタマイズする場合はSDK 4.4以上を使う必要があるようです。

For Enterprise and Community versions of 7.x, SDK 4.4 or higher must be used

ちなみに、GitHubのREADMEのDocumentation about Previous Versionsという段落の表を見るとSDK 4.6はAlfresco 7.4.xのカスタマイズ用にリリースされているように見えますし、Supported Platformsを見ても7.4.0の表には「Alfresco Content Services SDK 4.6」という記載があります。一方で、前回の記事でもご紹介した7.4のリリースノートには以下のようにAlfresco 7.4に対応しているのはSDK 4.5と書かれており、公式ドキュメントの中の情報に一貫性がなかったりします...。

The latest release of the Alfresco in-process SDK is SDK 4.5, which is compatible with Alfresco Content Services 7.4.

ただ、リリースされた時期を考えるとおそらくSDK 4.6はAlfresco 7.4用にリリースされたと思われるので、7.4をカスタマイズする場合はSDK 4.6を使っておけば問題ないのではないかと思います。

今回ご紹介する手順は基本的には以下のドキュメントに従っています。

Getting started with Alfresco SDK 4.x

 

準備

開発用のプロジェクトを作るためには、JDK、Maven、DockerおよびDocker Composeのインストール/設定が必要です。

2023年2月にご紹介したSDK 4.5で構築する手順の時は見落としていたのですが、SDK 4.5からJDK 17をサポートしているようなので、今回はJDK 17を使います。

まずJDK 17をインストールし、環境変数JAVA_HOMEを適切に設定します。インストールと設定が終わったら以下のコマンドで確認します。

java -version
echo $JAVA_HOME

次にMavenをインストールします(バージョンは3.3以上)。こちらも以下のコマンドでバージョンを確認します。

mvn -v

Dockerをインストールします。Docker ComposeがDockerのインストール時に一緒にインストールされていない場合は個別にインストールします。終わったら以下のコマンドで確認します。

docker -v
docker-compose -v

 

プロジェクトの作成

準備ができたら適当なディレクトリに移動し、以下のコマンドを実行してMaven Archetypeからプロジェクトを作成します。

mvn archetype:generate -Dfilter=org.alfresco:

ここからは対話形式で設定していきます。どのarchetypeを使用するか聞かれるので、

  • alfresco-allinone-archetype
  • alfresco-platform-jar-archetype
  • alfresco-share-jar-archetype

の3つ(以下の2, 4, 5)のいずれかを選択します。

Choose archetype:
1: remote -> org.alfresco.maven.archetype:activiti-jar-archetype (DEPRECATED - UNSUPPORTED - EXPERIMENTAL)
2: remote -> org.alfresco.maven.archetype:alfresco-allinone-archetype (Sample multi-module project for All-in-One development on the Alfresco platform. Includes modules for Platform/Repository JAR and Share JAR)
3: remote -> org.alfresco.maven.archetype:alfresco-amp-archetype (Sample project with full support for lifecycle and rapid development of Repository AMPs (Alfresco Module Packages))
4: remote -> org.alfresco.maven.archetype:alfresco-platform-jar-archetype (Sample project with full support for lifecycle and rapid development of Platform/Repository JARs and AMPs (Alfresco Module Packages))
5: remote -> org.alfresco.maven.archetype:alfresco-share-jar-archetype (Share project with full support for lifecycle and rapid development of JARs and AMPs (Alfresco Module Packages))
6: remote -> org.alfresco.maven.archetype:share-amp-archetype (Share project with full support for lifecycle and rapid development of AMPs (Alfresco Module Packages))
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :

Alfresco Platformのみカスタマイズする場合は 4. alfresco-platform-jar-archetype、Shareのみカスタマイズする場合は 5. alfresco-share-jar-archetype、両方の場合は 2. alfresco-allinone-archetypeを選択します。迷ったら 2. alfresco-allinone-archetype でよいと思います。ここでは2. alfresco-allinone-archetype を選択しておきます。

次に、どのバージョンを使用するか聞かれるので4.6.0を選択します。何も入力せずにEnterを押すとその時点の最新バージョン(以下の例では4.6.0を指定する19番)が自動的に選択されます。

Choose org.alfresco.maven.archetype:alfresco-allinone-archetype version:
1: 2.0.0-beta-1
2: 2.0.0-beta-2
3: 2.0.0-beta-3
4: 2.0.0-beta-4
5: 2.0.0
6: 2.1.0
7: 2.1.1
8: 2.2.0
9: 3.0.0
10: 3.0.1
11: 3.1.0
12: 4.0.0-beta-1
13: 4.0.0
14: 4.1.0
15: 4.2.0
16: 4.3.0
17: 4.4.0
18: 4.5.0
19: 4.6.0
Choose a number: 19:

最後に、groupIdやartifactIdといった情報の入力を求められるので適当に入力します。ここで入力したartifactIdが、プロジェクトのディレクトリ名やビルド時に作成されるJARファイルのファイル名として使用されます。

Define value for property 'groupId': jp.aegif.alfresco
Define value for property 'artifactId': my-all-in-one
[INFO] Using property: version = 1.0-SNAPSHOT
Define value for property 'package' jp.aegif.alfresco: :

入力内容が合っているか聞かれるので、問題なければYを入力します(何も入力せずEnterでも同じです)。Y以外を入力するとgroupIdの入力からやり直すことができます。archetypeの選択からやり直したい場合はCtrl+Cで終了して最初からやり直せば大丈夫です。

Confirm properties configuration:
groupId: jp.aegif.alfresco
artifactId: my-all-in-one
version: 1.0-SNAPSHOT
package: jp.aegif.alfresco
Y: :

「BUILD SUCCESS」と表示されたらプロジェクト作成完了です。

 

Buildして起動

最初にmvnコマンドを実行したディレクトリにartifactIdと同名のディレクトリ(ここではmy-all-in-one)が作成されているはずなのでそのディレクトリに移動します。

cd my-all-in-one

このディレクトリで、LinuxやMacでは

./run.sh build_start

Windowsでは

run.bat build_start

を実行すると、カスタマイズが適用されたAlfresco(厳密に言うとAlfrescoを動かすために必要なコンテナ群)が起動します。

起動したらブラウザで http://localhost:8180/share にアクセスして(portが8080ではなく8180なので注意)、ID/PWにadmin/adminと入力してログインできれば成功です。

終了する時は、LinuxやMacでは

./run.sh stop

Windowsでは

run.bat stop

と入力します。他にも、ACSだけを再起動するreload_acsやShareだけを再起動するreload_share、データをクリアするpurge等、いくつかコマンドが用意されているのでrun.shやrun.batの中身を確認してみてください。

以上、SDK 4.6で開発環境を構築する方法のご紹介でした。SDKに関する詳しい内容はこちらの公式ドキュメントに載っているので目を通してみると理解が深まるのではないかと思います。

関連記事
customize
customize
install
customize

RANKING
2020.10.12
2020.11.19
2020.12.23
2020.10.05
2020.11.25