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

Alfresco sdk 2.0

Jul 01, 2015

Download

Software

Yoshihiko Aochi

MavenベースのAlfresco SDKについて
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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)