Alfresco SDK 4.10で開発環境を構築する - Alfresco SDK 4.10で開発環境を構築する - aegif Labo Blog Alfresco
null Alfresco SDK 4.10で開発環境を構築する
こんにちは。今回は2024年11月にリリースされたSDK4.10を使ってAlfrescoの開発環境を構築する手順をご紹介します。GitHubのDocumentation about Previous Versions の表によると、同じく2024年11月にリリースされたAlfresco Community Edition 23.4 をカスタマイズする場合はSDK4.10を使う必要があります。
準備
開発用のプロジェクトを作るためには、JDK、Maven、DockerおよびDocker Composeのインストール/設定が必要です。
まず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.10.0を選択します。何も入力せずにEnterを押すとその時点の最新バージョン(以下の例では4.10.0を指定する23番)が自動的に選択されます。
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
Choose a number: 23:
最後に、groupIdやartifactIdといった情報の入力を求められるので適当に入力します。ここで入力したartifactIdが、プロジェクトのディレクトリ名やビルド時に作成されるJARファイルのファイル名として使用されます。
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以外を入力するとgroupIdの入力からやり直すことができます。archetypeの選択からやり直したい場合はCtrl+Cで終了して最初からやり直せば大丈夫です。
Confirm properties configuration:
version: 1.0-SNAPSHOT
groupId: jp.aegif.alfresco
artifactId: my-all-in-one
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.10で開発環境を構築する方法のご紹介でした。SDKに関する詳しい内容はこちらの公式ドキュメントに載っているので目を通してみると理解が深まるのではないかと思います。余談ですが、公式ドキュメントのプラットフォームが最近変わったようです。まだあまり使えていませんが、プロダクトやバージョンによってどのようなドキュメントがあるかは探しやすくなった気がします。