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