2. What is the Maven Alfresco SDK?
• A set of tools and samples to manage the full
lifecycle of Alfresco based project
– Build and packaging
– Unit Testing and Debugging
– Release and distribution
– Any other Maven feature (e.g. artifacts
signing, documentation)
• What does it entail?
– A parent POM you can use in your project to enable SDK
features
– Project Samples & Prototyping via archetypes (AMP & All-
in-One)
3. Why another SDK?
• To enable the next quality level on Alfresco customizations!
• For the Enterprise Network
– Maven is standard de facto for our key customers
– Enable development of quality extensions (unit testing support)
– Enable IDE-independent processes (e.g. CI)
• For the Community network
– Maven is widely used and standard
– Clearly identifiable / searchable artifacts in the Artifacts Repository
• For the Integration Engineering team
– Standardized on Maven for integrations
– Maven naturally allows fine grained dependency on Alfresco specific
versions / editions
• Trust us, we feel the pain
7. A bit of (a success) history…
• 2009: Maven Alfresco Archetypes started
– A (quite messy) set of field Maven best practices
– Remember an earlier brownbag?
• 2009: Maven Alfresco Lifecycle (up to 3.9.1)
– Consolidation of archetypes and plugins
• June 2012: Alfresco Artifacts Repository!
– Alfresco Enterprise artifacts available!
• Nov 2012: Maven Alfresco SDK 1.0 out!
8. The SDK at a glance!
Archetypes
SDK POM
Plugin
Alfresco
Deployment Artifacts <dependency>
Repository
9. Maven Alfresco SDK components
• Alfresco Maven Plugin
– Embeds Alfresco MMT
• Alfresco SDK Parent POM
– SDK single point of entrance
• Alfresco Platform Distribution POM
– Community / Enterprise
• Alfresco Maven archetypes
– AMP & All-in-One
10. Maven Alfresco SDK use cases
• AMP archetype
– Create an Alfresco module from scratch
– Create a Share customization from scratch
• All-in-One archetype
– Manage a full blown (foundation) Alfresco project
– Build and distribute WARs (potentially depending on AMPs)
– Evaluate Alfresco with one command
– Demo Alfresco or reproduce an issue in minutes
• SDK Parent POM
– Enable your existing Maven project to use SDK features
– You are Maven guru and know much better than using
archetypes!
12. Compatibility notes
• Prerequisites:
– Apache Maven 3.0.4
http://maven.apache.org/download.cgi
– There are no more pre-requisites
• Compatibility notes:
– Compatible with Alfresco Community 4.2+ & Alfresco
Enterprise 4.1.2+
– For embedded running we leverage Jetty and H2 embedded
• Only for development purposes!
• H2 uses Postgres compatibility/emulation mode
• Deployment to other appservers comes for free with Maven
13. Demo
• Overview of SDK functionalities
– Create an All-in-One project
– Developer experience
– Unit testing
– Environment dependent properties
• A more complex example
14. Some numbers
• Great (and measurable) impact in our Network!
• Maven Alfresco Google Group
– About 130 subscribers
– Daily activity
• Google Code Project
– 4 active committers (Gab, Mao, Samuel, Ray)
– About 20 contributors
• Alfresco Artifacts Repository
– More than 100 customers subscribed in 6 months
– BETA: Downloads tracked in Google Analytics (see BDE-
123)
15. Roadmap
• Maven Alfresco SDK 1.0.1
– Released a month ago!
– Adds support for Alfresco Enterprise
• Maven Alfresco SDK 1.1
– RAD and Hot code deployment (Jrebel or mvn jetty:run)
– Integration test support
• Potentially using WebDrone and benchmark server
• Other high impact activities:
– Alfresco Community on Maven Central for easy access to all
the J2EE developers community (5 XML lines away)
– More and Enterprise only archetypes
• One command cluster local setup archetypes
16. Get involved!
• Documentation
– Maven generated Documentation Site
– DevCon presentations
– Google group archive
• Community
– Join the Maven Alfresco Google group
– Contribute in the Google Code project
• Resources
– SDK on Alfresco artifacts
– Bamboo build