alfresco sdk 2.0

29
Alfresco SDK 2014/10/02 Yoshihiko Aochi Solution Engineer, Alfresco Japan

Upload: yoshihiko-aochi

Post on 01-Jul-2015

209 views

Category:

Software


8 download

DESCRIPTION

MavenベースのAlfresco SDKについて

TRANSCRIPT

Page 1: Alfresco sdk 2.0

Alfresco SDK

2014/10/02 Yoshihiko Aochi Solution Engineer, Alfresco Japan

Page 2: Alfresco sdk 2.0

Mavenとは

•  http://maven.apache.org/ •  プロジェクトの環境構築、成果物生成を支援

するツール。 •  ファイルの置く場所等の「決まりごと」の中で、

効率よく開発を進めることができる。

Page 3: Alfresco sdk 2.0

AlfrescoのMavenでの開発

•  ひな形からプロジェクト(アーティファクト)を作成 •  TomcatやDBの準備がいらない + 必要なものは全て自動的にダウンロード

•  開発環境の依存なし(Eclipse, Netbeans, IDEA etc.) •  Community版、Enterprise版どちらでも利用可能   (エンタープライズ版は認証必要。認証キーとアクセス方法についてはSupport Portalを参照)

Page 4: Alfresco sdk 2.0

準備

•  Maven 3.0.3またはそれ以上 •  Java 1.7

Page 5: Alfresco sdk 2.0

環境変数の設定

•  JAVA_HOME •  MAVEN_OPTS export MAVEN_OPTS=“-Xms1024m –Xmx4096m –XX:PermSize=1024m”

Page 6: Alfresco sdk 2.0

mvn archetype:generate -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml -Dfilter=org.alfresco.maven.archetype:

クイックスタート!AMPプロジェクトを作る http://docs.alfresco.com/4.2/tasks/dev-extensions-maven-sdk-quick-start.html

プロジェクトの作成を対話形式で作成

Page 7: Alfresco sdk 2.0

[INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype: 1: https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml -> org.alfresco.maven.archetype:alfresco-amp-archetype (Sample project with full support for lifecycle and rapid development of AMPs (Alfresco Module Packages)) 2: https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml -> org.alfresco.maven.archetype:alfresco-allinone-archetype (Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository, AMP, Share, Solr, Web Quick Start and embedded Jetty run) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1 Choose org.alfresco.maven.archetype:alfresco-amp-archetype version:

AMPのサンプルプロジェクトのarchetypeを選択

Page 8: Alfresco sdk 2.0

最新のarchetype versionを選択(デフォルト)

Choose org.alfresco.maven.archetype:alfresco-amp-archetype version: 1: 1.0 2: 1.0.1 3: 1.0.2 4: 1.1.0 5: 1.1.1 Choose a number: 5:

ここはEnterを押してそのままデフォルトでもよい  (後で変更できる)

Page 9: Alfresco sdk 2.0

今から作成するプロジェクトのgroupIdとartifactIdを設定

Define value for property 'groupId': : jp.alfresco Define value for property 'artifactId': : sample-amp

アーティファクト:mavenで作られるプロジェクトとその成果物  groupId:  このアーティファクトを作成した組織のID(例えば、会社ドメイン)  ar2factId:  このアーティファクトのId  

Page 10: Alfresco sdk 2.0

[INFO] Using property: version = 1.0-SNAPSHOT [INFO] Using property: package = (not used) [INFO] Using property: alfresco_target_amp_client_war = alfresco [INFO] Using property: alfresco_target_amp_client_war_groupId = org.alfresco [INFO] Using property: alfresco_target_amp_client_war_version = 4.2.e [INFO] Using property: alfresco_target_groupId = org.alfresco [INFO] Using property: alfresco_target_version = 4.2.e Confirm properties configuration: groupId: jp.alfresco artifactId: sample-amp version: 1.0-SNAPSHOT package: (not used) alfresco_target_amp_client_war: alfresco alfresco_target_amp_client_war_groupId: org.alfresco alfresco_target_amp_client_war_version: 4.2.e alfresco_target_groupId: org.alfresco alfresco_target_version: 4.2.e Y: :

ターゲットとなるwarやAlfrescoのバージョンがデフォルトで設定される!

ここはEnterを押してそのままデフォルトでもよい  (後で変更できる)

Page 11: Alfresco sdk 2.0

YoshiMac:mvn aochi$ ls sample-amp

設定したartifactIdの名前でディレクトリができる!

Page 12: Alfresco sdk 2.0

AMPサンプルをそのまま動かす

mvn  integra2on-­‐test  -­‐Pamp-­‐to-­‐war

h;p://localhost:8080/alfresco

ブラウザでアクセス

サンプルコードが入っているので、それを動かせる

Page 13: Alfresco sdk 2.0

Eclipseを使った環境構築

準備    •  Eclipse  

Kelper  J2EEだとmavenも入っている  •  m2e  Maven  dependency  plugin  

Page 14: Alfresco sdk 2.0

M2e Maven Dependency Pluginのインストール

Page 15: Alfresco sdk 2.0

M2e Maven Dependency Pluginのインストール

“Add”  で  h;p://ianbrandt.github.io/m2e-­‐maven-­‐dependency-­‐plugin/snapshots/  のサイトを追加  

チェックを入れて”Next”  

Page 16: Alfresco sdk 2.0

Mavenプロジェクトのインポート

Page 17: Alfresco sdk 2.0

Mavenプロジェクトの選択

Page 18: Alfresco sdk 2.0

インポート後のワークスペース

Page 19: Alfresco sdk 2.0

プロジェクトの階層構造

ファイル/ディレクトリ 説     明

src/main/java Javaコードを置く場所。Alfresco.warがターゲットの場合、ここに置かれたコードはjar化されてWEB-­‐INF/libに配置される  

src/main/amp amp内のファイルはここに置く(後述)

src/test/java テスト用のコードを置く場所

src/test/resources テスト用のリソースファイルを置く場所

pom.xml このプロジェクトの情報が記載されるファイル。(依存性、ターゲット等)  

Page 20: Alfresco sdk 2.0

Alfrescoのターゲットバージョンを変更する (pom.xml)

変更後、一度クリーンする  mvn  clean  -­‐Ppurge

Page 21: Alfresco sdk 2.0

What’s new in Alfresco SDK 2.0

•  Alfresco Maven SDKの次のバージョン •  現在Community版のみ。Enterprise版

は今月リリース予定 •  Spring-loadedを使ったホットコードリ

ロードが可能

Page 22: Alfresco sdk 2.0

準備

•  spring-loadedのダウンロード https://github.com/spring-projects/spring-loaded

•  MAVEN_OPTSの設定 export MAVEN_OPTS="-javaagent:/<spring-loadedを置いたファイルパス>/springloaded-1.2.0.RELEASE.jar -noverify -Xmx1024m -Xmx4096m -XX:PermSize=1024m"

Page 23: Alfresco sdk 2.0

プロジェクトの作成

$ mvn archetype:generate -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public-snapshots/archetype-catalog.xml -Dfilter=org.alfresco.maven.archetype:

pom.xmlの変更  <parent>                  <groupId>org.alfresco.maven</groupId>                  <ar2factId>alfresco-­‐sdk-­‐parent</ar2factId>                  <version>2.0.0-­‐beta-­‐1</version>          </parent>

最新バージョンは以下を確認ください:  h;ps://ar2facts.alfresco.com/nexus/content/groups/public/alfresco-­‐sdk-­‐aggregator/latest/index.html

2014/10/02現在  2.0.0-­‐beta-­‐3が最新版  

Page 24: Alfresco sdk 2.0

Demo

Page 25: Alfresco sdk 2.0

For more info. •  GitHub https://github.com/Alfresco/alfresco-sdk •  Developer Document https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-sdk-aggregator/latest/index.html •  Alfresco Documentation http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html

Page 26: Alfresco sdk 2.0

Q&A

Page 27: Alfresco sdk 2.0

補足

Page 28: Alfresco sdk 2.0

情報: WSSERVLET14: JAX-WS servlet initializing 8 09, 2014 6:36:32 午後 org.apache.catalina.core.ApplicationContext log 情報: Marking servlet axis as unavailable 8 09, 2014 6:36:32 午後 org.apache.catalina.core.StandardContext loadOnStartup 重大: Servlet /alfresco threw load() exception org.apache.commons.discovery.DiscoveryException: Class org.apache.commons.logging.impl.SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory

at org.apache.commons.discovery.tools.ClassUtils.verifyAncestory(ClassUtils.java:180) at org.apache.commons.discovery.tools.SPInterface.verifyAncestory(SPInterface.java:201) at org.apache.commons.discovery.tools.SPInterface.newInstance(SPInterface.java:195) at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java:579) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:418) at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:378) at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45) at java.security.AccessController.doPrivileged(Native Method) at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41) at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33) (途中略)

8 09, 2014 6:36:33 午後 org.apache.coyote.AbstractProtocol start 情報: Starting ProtocolHandler ["http-bio-8080"]

SLF4Jの依存性の解決 (pom.xml)!

Page 29: Alfresco sdk 2.0

SLF4Jの依存性の解決 (pom.xml)