Alfresco In-Process SDK 4.16で開発環境を構築する - aegif Labo Blog Alfresco
こんにちは。今回は2026年6月にリリースされた Alfresco In-Process SDK4.16 を使ってAlfrescoの開発環境を構築する手順をご紹介します。2026年7月にリリースされたAlfresco Community Edition 26.2 に対応しているSDKのバージョンに関して、リリースノートでは SDK 4.15 と書いてあったり、GitHubのSDK 4.16のREADME にはAlfresco 26.2 のことが書かれていなかったりと、情報が整理されていない印象がありますが、26.2 の Supported Platforms には In-Process SDK 4.16 と書かれているので、Alfresco 26.2 を使う場合は In-Process SDK のバージョンは 4.16 を使うのがよいと思います。
準備
開発用のプロジェクトを作るためには、JDK、Maven、DockerおよびDocker Composeのインストール/設定が必要です。
Supported Platforms にはJDKのバージョンとして25と21が載っているので今回はJDK 25をインストールしますが、JDK 21でも大丈夫です。インストールしたら環境変数JAVA_HOMEを適切に設定します。インストールと設定が終わったら以下のコマンドで確認します。
java -version
echo $JAVA_HOME
次にMavenをインストールします(バージョンは3.3以上)。こちらも以下のコマンドでバージョンを確認します。
mvn -v
Dockerをインストールします。Docker ComposeがDockerのインストール時に一緒にインストールされていない場合は個別にインストールします。終わったら以下のコマンドで確認します。
docker version
docker compose version
プロジェクトの作成
準備ができたら適当なディレクトリに移動し、以下のコマンドを実行して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.16.0に相当する38を指定します。
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
20: 4.7.0
21: 4.8.0
22: 4.9.0
23: 4.10.0
24: 4.11.0-A2
25: 4.11.0
26: 4.12.0-A1
27: 4.12.0
28: 4.13.0-A1
29: 4.13.0-A2
30: 4.13.0-A3
31: 4.13.0-A4
32: 4.13.0-A5
33: 4.13.0-A6
34: 4.13.0-A8
35: 4.13.0
36: 4.14.0
37: 4.15.0
38: 4.16.0
Choose a number: 38:
最後に、groupIdやartifactIdといった情報の入力を求められるので適当に入力します。versionだけはデフォルト値として 1.0-SNAPSHOT がセットされています。ここで入力したartifactIdが、プロジェクトのディレクトリ名やビルド時に作成されるJARファイルのファイル名として使用されます。
[INFO] Using property: version = 1.0-SNAPSHOT
Define value for property 'groupId': jp.aegif.alfresco
Define value for property 'artifactId': my-all-in-one
Define value for property 'package' jp.aegif.alfresco:
入力内容が合っているか聞かれるので、問題なければYを入力します(何も入力せずEnterでも同じです)。Y以外を入力すると、versionの入力からやり直すことができます。archetypeの選択からやり直したい場合はCtrl+Cで終了して最初からやり直せば大丈夫です。
Confirm properties configuration:
version: 1.0-SNAPSHOT
groupId: jp.aegif.alfresco
artifactId: my-all-in-one
package: jp.aegif.alfresco
Y:
ここでは、nと入力してversionを変更してみます。
Define value for property 'version' 1.0-SNAPSHOT: 1.0
Define value for property 'groupId': jp.aegif.alfresco
Define value for property 'artifactId': my-all-in-one
Define value for property 'package' jp.aegif.alfresco:
Confirm properties configuration:
version: 1.0
groupId: jp.aegif.alfresco
artifactId: my-all-in-one
package: jp.aegif.alfresco
Y:
今度はYと入力してプロジェクトを作成します。「BUILD SUCCESS」と表示されたら成功です。
Buildして起動
最初にmvnコマンドを実行したディレクトリにartifactIdと同名のディレクトリ(ここではmy-all-in-one)が作成されているはずなのでそのディレクトリに移動します。
cd my-all-in-one
このディレクトリの直下にある pom.xml を開くと、以下のように ACS(Alfresco Platform)や Alfresco Share のバージョンが 26.1 になっています。
<alfresco.platform.version>26.1.0</alfresco.platform.version><alfresco.platform.docker.user>alfresco</alfresco.platform.docker.user>
<alfresco.share.version>26.1.0.45</alfresco.share.version>
<alfresco.share.docker.version>26.1.0</alfresco.share.docker.version>
そのため、これを以下のようにそれぞれ記事執筆時点で最新の26.2.xに変更して保存します。
<alfresco.platform.version>26.2.0</alfresco.platform.version><alfresco.platform.docker.user>alfresco</alfresco.platform.docker.user>
<alfresco.share.version>26.2.1.3</alfresco.share.version>
<alfresco.share.docker.version>26.2.4</alfresco.share.docker.version>
また、docker/docker-compose.yml を見てみると、今回作成したプロジェクトでは以下のように検索エンジンとしてSolrが使われていました。
my-all-in-one-ass:
image: alfresco/alfresco-search-services:2.0.15
environment:
SOLR_ALFRESCO_HOST: my-all-in-one-acs
SOLR_ALFRESCO_PORT: 8080
SOLR_SOLR_HOST: my-all-in-one-ass
SOLR_SOLR_PORT: 8983
ACS 26.2から、Solrはサポート対象外となり、Elasticsearch/OpenSearchに移行しているのですが、In-Process SDK 4.16 にはまだ反映されていないようです。ACS 26.2 のカスタマイズで検索を使う場合は Elasticsearch/OpenSearch を使うように設定を変更した方がよいと思いますが、長くなってしまうので別記事でご紹介することにして、ここでは割愛します。
準備ができたら、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.16で開発環境を構築する方法のご紹介でした。SDKに関する詳しい内容はこちらの公式ドキュメントに載っているので目を通してみると理解が深まるのではないかと思います。
