JavaRush /Java Blog /Random-JA /Maven Alfresco SDK の入門パート 1
CynepHy6
レベル 34
Великий Новгород

Maven Alfresco SDK の入門パート 1

Random-JA グループに公開済み

Alfresco Maven SDK を使ってみる

ジェフ・ポッツ、2014 年 1 月、 パート 2 =>
  • 導入
  • 基本概念
  • アパッチメイブン
  • Alfresco モジュラー パッケージ(AMP)
  • Alfresco Maven SDK
  • 古い Ant ベースの SDK について何が言えますか?
  • あなたの最初のプロジェクト
  • 起動しましょう
  • それが何だった?
  • その他のビルドコマンド
  • ロギング

導入

このチュートリアルは、プロジェクトで何らかの方法で Alfresco を構成する必要がある人々のために作成されました。それで最初は「何だこれは!?」と思います。しかし、最終的には次のことを学ぶことになります。

  • Alfresco Maven SDK を使用して Alfresco プロジェクトを最初から作成する方法
  • 設定に応じて何が起こるか
  • テストを作成して実行する方法
  • コミュニティへの埋め込みや共有に適したアーティファクトを作成する方法

このチュートリアルは、コンテンツ モデリング、アクションと動作のカスタマイズ、追加のワークフロー、Web スクリプトなどの詳細な学習に進む前の出発点として考慮する必要があります。

始める前に、少し余談を述べておきます。解決策には、ほとんどの場合、多くの代替パスが存在します。このチュートリアルでは、最もシンプルで直接的な方法、つまり、より早く理解できる安全なルートを紹介します。必要に応じて、後でいくつかの内容を変更したり、他のルートを探索したりすることができます。

基本概念。

使用を開始する前に、Maven、Alfresco、またはこの SDK が必要な理由について詳しく知る必要はありませんが、ある程度の知識がいくつかの点で役立つため、基本的な概念について簡単に説明します。

アパッチメイブン

Apache Maven はビルド管理ツールです。これには多くの機能がありますが、主な機能は、プロジェクトがどの依存関係 (および依存関係の依存関係) に依存しているかを把握する時間を節約できることです。Maven はこれらの依存関係を取得してキャッシュできます。どの JAR ファイルがどの JAR ファイルの後に来るかを把握するのに時間を費やしたことがあれば、そのようなツールの有用性は明らかです。

Alfresco モジュラー パッケージ(AMP)

AMP は、特定の規則に従ったディレクトリ構造を持つ ZIP ファイルです。AMP ファイルは、Alfresco プラットフォームで設定を簡単に共有および展開するために使用されます。プロジェクトでリポジトリ レベル (Web アプリ/alfresco) でカスタム設定を作成する必要がある場合は、AMP 「リポジトリ」を作成します。プロジェクトで共有レベル (Web アプリ /share) の設定を作成する必要がある場合は、「共有」AMP を作成します。両方のレベルで変更が必要な場合、2 つの AMP を作成するのはプロジェクトでは非常に一般的です。

Alfresco Maven SDK

今日のプログラマは、空のディレクトリが 1 分以内にファイルで完全に埋め尽くされ、次の瞬間にはプロジェクトを起動できる強力なフレームワークに慣れています。なぜ Alfresco 開発者は、より低い金額で妥協する必要があるのでしょうか?

Maven ベースの SDK の目標は、Alfresco の開発を開始するための最も単純な条件を作成することです。SDK は、プロジェクト テンプレート (Maven 用語で「アーキタイプ」) と、AMP を作成して Alfresco にデプロイする方法を Maven に指示するいくつかの組み込み機能で構成されます。

Alfresco および Share WAR とは別に独自のアプリケーションを作成する場合は、Alfresco Maven SDK は必要ありません。ただし、これらの Web アプリケーションで実行されるコードを作成する場合は、Alfresco Maven SDK から始めることをお勧めします。

古い Ant ベースの SDK についてはどうですか?

Alfresco は、このダウンロード可能な SDK を当初から提供しています。SDK には、コンパイル、ソース コード、ドキュメント、サンプル Eclipse プロジェクトに必要な依存関係を含む ZIP コンテナーが含まれていました。これらの例では、Ant ベースのビルダーを使用しました。

このアプローチには何も問題はありませんでしたが、開発プラットフォームは進化しましたが、Ant の SDK はそれに合わせて進化できませんでした。現在、これらのサンプルの一部は古くなり (ネイティブ Web サービス API や Alfresco Explorer ユーザー インターフェイスなど)、CMIS、Web スクリプト、Activiti を使用した高度なワークフローなどの非常に重要な部分のサンプルが不足しています。

古いサンプルに加えて、古い Ant SDK が必要です。開発者はあまりにも多くの仕事をしすぎています。Alfresco Maven SDK を使用すると、何もダウンロードする必要さえありません。プロジェクトを作成してコーディングを始めるだけです。

これで、Apache Maven、AMP、Alfresco Maven SDK について高度な理解が得られました。すべてを実際に見てみる時が来ました

初めてのプロジェクト

Alfresco Maven SDK を使用して Alfresco 向けの開発を開始するのがいかに簡単かを説明しましょう。始める前に、JDK 1.7 と Apache Maven 3 がインストールされていることを思い出してください。他に何もダウンロードする必要はありません。真剣に。屋外でも。

  1. 空のディレクトリを作成します。すぐに追加のディレクトリをいくつか作成する予定です。
  2. 次に、空のプロジェクトを作成しましょう。たとえば、カスタム コンテンツ モデル、いくつかのカスタム ルール アクション、新しい Web スクリプトのセット、またはいくつかの Activiti ビジネス プロセスなど、Alfresco リポジトリにデプロイするものを作成するとします。それは本当に問題ではありません。新しいプロジェクトを作成するには、次のコマンドを実行します。
    mvn アーキタイプ:生成\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven はいくつかの作業を行い、最終的には「アーキタイプ」を選択するよう求めます。プロジェクト テンプレート ライブラリからの基本的な選択。ここでは 2 つが利用可能です。1 つは「alfresco-amp-archetype」と呼ばれ、もう 1 つは「alfresco-allinone-archetype」と呼ばれます。私たちの目標は、Alfresco にデプロイできる AMP を作成することなので、最初のポイントは必要なものです。1 を入力して Enter キーを押します。
  4. Maven は、プロジェクトのベースとなるテンプレートの特定のバージョンを尋ねます。現在、最新バージョンは 1.1.1 で、リストの 5 番目のオプションなので、5 を押して Enter を押します。
  5. Maven は groupId について尋ねます。「Javaパッケージ」に似ています。私の例は常に、私が SomeCo という架空の会社で働いているという事実に基づいているため、ここでは「com.someco」と入力します。意味のあるものを入力し、Enter キーを押します。
  6. 次は artifactId です。これをプロジェクトの名前として考えてください。これは AMP ID にもなりますので、特別なものを選択してください。このモジュールはリポジトリに組み込まれるため、artifactId に行「-repo」を追加する必要もあります。ここでは「someco-mvn-tutorial-repo」という名前を付けて Enter キーを押します。

  7. この時点で、Maven は入力した値を表示し、他のデフォルトを追加して、選択を確認するよう求めます。何かを変更したい場合は、「N」を選択して変更するか、「Y」を選択して続行します。これらの値は、必要に応じて後でいつでも変更できます。「Y」を押してEnterを押します。

Maven はいくつかの作業を行います。完了すると、次のものが得られます。

  • Alfresco 開発をサポートするように構成されたプロジェクト
  • デフォルトの設定ファイル
  • すべてが機能することを確認するための追加の単体テスト用の最小限の Java コード
  • テストに必要なローカル Alfresco インスタンスを実行するために必要な構成
  • プロジェクトにどのような依存関係があるかを Maven に伝えるデフォルトの POM (プロジェクト オブジェクト モデル) XML ファイル

実行してみましょう

まだ何もアップロードしていません。まだ何も編集していません。テンプレートに基づいてプロジェクトを作成するように Maven に指示しただけですが、素晴らしいニュースがあります。プロジェクトはすぐに実行できるようになりました。

これを試して:

cd someco-mvn-tutorial-repo
mvn 統合テスト -Pamp-to-war

出力を見ると、Maven がプロジェクトのコンパイル、AMP の作成、AMP の Alfresco WAR へのデプロイ、Alfresco WAR の組み込み Tomcat サーバーへのデプロイ、実行に必要なものをすべてダウンロードしていることがわかります。最終的には次のようなものが表示されます。

2014-01-15 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] 1 個のモジュールが見つかりました。
2014-01-15 18:01:19,480 情報 [repo.module.ModuleServiceImpl] [localhost-startStop-1] モジュール「someco-mvn-tutorial-repo」バージョン 1.0.1401151758 をインストールしています。

これは、プロジェクト モジュールが Alfresco サーバーによって生成され、認識されたことを意味します。

表示された後:

Jan 16, 2014 8:38:20 AM org.apache.coyote.AbstractProtocol start INFO: starting ProtocolHandler ["http-bio-8080"]

次のものを開くことができるはずです。

http://localhost:8080/alfresco

そして、「admin」と「admin」を使用してログインします。

鑑賞し終わったら、Maven コマンドを実行したウィンドウに戻り、ctrl-c を押してサーバーをシャットダウンします。

統合テストの実行時にメモリ不足エラーが発生した場合は、Maven のメモリ オプションに JVM パラメータを入力する必要がある場合があります。考えられる解決策の 1 つは、MAVEN_OPTS 環境変数を設定することです。たとえば、次のように値を設定します。

-Xmx1024M -XX:MaxPermSize=512m

MAVEN_OPTS を使用して、メモリ オーバーフロー エラーが表示されないように十分に設定します。

それが何だった?

「amp-to-war」プロファイルを使用するために「integration-test」を実行するように Maven に依頼しました。これにより、プロジェクトが構築され、それが AMP として新しい Alfresco WAR にデプロイされ、組み込み Tomcat サーバーが実行されました。その後、古い Alfresco Explorer クライアントにログインし、リポジトリを操作してモジュールをテストできるようになりました。

ターゲット ディレクトリを見ると、作成され、その後 Alfresco WAR にデプロイされた AMP が表示されます。私の場合は「someco-mvn-tutorial-repo.amp」という名前です。このファイルは、リポジトリ レベルの変更をライブ Alfresco サーバーに適用する準備ができている場合に、IT チームに提供する必要があります。

その他のビルドコマンド

Alfresco サーバーを起動して実行したままにしておく必要があるとは限りません。プロジェクトをビルドし、単体テストを実行し、AMP をパッケージ化するだけの場合は、次のようにすることができます。

mvn パッケージ

AMP をローカル Maven リポジトリ内にインストールする場合は、次を実行します。

mvn インストール

お気づきかもしれませんが、プロジェクトにはデフォルトで簡単な単体テストが含まれています。デフォルトでは、Maven はプロジェクト内で単体テストを自動的に実行します。これはコンソール出力で確認できます。

-------------------------------------------------- -----
 テスト
-------------------------------------------------- -----
org.alfresco.demoamp.test.DemoComponentTest の実行

プロジェクトに常に単体テストが含まれていることを確認し、ビルドするたびに単体テストを実行することをお勧めします。多くの組織は、これらのテストに依存する CI (継続的インテグレーション) ツールを使用しています。何らかの理由でテストを実行したくない場合は、次のようにテストをスキップできます。

mvn install -DskipTests=true

Maven が作成したコンパイル済みのものをすべて削除して最初からやり直す場合は、次のコマンドを実行できます。

mvnクリーン

サーバーテストの実行時に常に作成される組み込みデータベース、保存された Alfresco コンテンツ、インデックス、ログも削除したい場合は、次のコマンドを実行できます。

mvn clean -パージ

これで、テンプレートを使用して新しい Alfresco プロジェクトを作成する方法と、テストの有無にかかわらず構築の基本を理解できました。次のステップは、IDE でプロジェクトを操作する方法を学習することです。

ロギング

log4j.properties ファイルは modules ディレクトリにあり、log4j.properties ファイルには次のものが含まれます。

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

おそらく、これをパッケージ構造に合った独自の設定に置き換えることができます。

module.log.level を設定するには、Maven の起動時に次のように行うことができます。

mvn install -Dmodule.log.level=DEBUG

または、次のように pom.xml を編集してプロパティに追加することもできます。

<module.log.level>デバッグ</module.log.level>

pom.xml を変更すると、AMP は作成時にこれらの設定を受け取り、その後、AMP がデプロイされる WAR がログを書き込みます。これはあなたが望んでいることかもしれません (またはそうでないかもしれません)。よくわからない場合は、コマンド ラインを使用して値を設定することをお勧めします。こうすることで、AMP 内の値を誤って間違えることを防ぐことができます。

ECMアーキテクト


この作品は、 クリエイティブ コモンズ表示 - 継承 3.0 非移植ライセンスに基づいてライセンスされています。 パート 2 =>
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION