SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Tech Talk Live: Packaging & Deploying
Extensions
February 2012

Gabriele Columbro, Jared Ottley, Richard McKnight,
Jeff Potts
Rough Agenda
•    Alfresco Add-Ons
•    Packaging
•    Deployment
•    Project Structure & Builds
•    More on Maven
Introducing Alfresco Add-Ons
•  http://addons.alfresco.com
•  Directory of Alfresco add-ons and
   extensions
  –  Not a code hosting site
  –  Replaces Alfresco Forge
•  Eventually integrated into the platform
  –  Community, Enterprise, Cloud
•  May feature monetization at some point
Add-ons Timeline
•  Alfresco Forge is no longer accepting new
   projects
•  Add-ons out of beta in February
•  Register for an account, begin listing your
   add-ons today
•  New releases to follow regularly
•  Platform integration expected with Alfresco
   5.x
Packaging
What is an AMP?
•  Alfresco Module Package
•  A zip with a defined structure
•  Gets “installed” into an alfresco or share
   WAR using the Module Management Tool
   (MMT)
•  The best practice for distributing add-ons
•  http://wiki.alfresco.com/wiki/AMP_Files
Reasons to Dislike AMPs
•  Requires a proprietary tool (MMT)
•  Longer dev cycles (merge, deploy entire
   WAR) versus unzipping/copying
•  Lacks value-add features such as merge
•  Lacks an undeploy
Why You Should Use Them
Anyway
•  Namespacing built in
•  Can include bootstrapping logic
•  Can be used for both repo and Share tiers
•  Repeatable deployment process for Ops
•  We (the Royal “We”) need one “module”
   approach for add-ons
•  Expect AMP/MMT improvements in the
   coming year
Best Practices
•  Package as an AMP
•  Use reverse domain for module ID
•  Consider using a straight copy for local
   Dev, then package as an AMP for Test/QA/
   Prod
Deployment
Where Should I Stick This?
•  If you’re using AMPs, this isn’t an issue
•  Otherwise…
  –  Repo: WEB-INF/classes/alfresco/extension
  –  Share: WEB-INF/classes/alfresco/web-
     extension
•  http://wiki.alfresco.com/wiki/
   Packaging_And_Deploying_Extensions
Best Practices
•  Use AMPs so you don’t have to worry
   about it
•  Separate your repo tier extensions from
   your Share tier extensions
•  Deploy to the appropriate webapp, not to
   Tomcat shared
Project Structure & Builds
Best Practices
•  “More projects” is usually better than “one
   project”
  –  One each for shared config, server settings
  –  For each module, one repo tier, one Share tier
•  Have a repeatable build
•  Incorporate minification into your build
•  Ant versus Maven
MORE ON MAVEN
Alfresco field expertise tells me
that…
•  Community / Enterprise Networks
1.    Develop their own build system
2.    Generally leverage the Eclipse SDK but in many different flavors
3.    Rarely do test driven development (difficult) or CI
4.    Often use a poor / no packaging
5.    Either manual (error prone) or over-complex .doc based deployment strategy
6.    Often not contribute as it takes time to understand “How To”
7.    Almost no reuse/sharing between projects

•  Common pitfalls
1.    Wrong environmental properties
2.    AMP leftovers in the WAR from previous deployments
3.    Single point of failure (“oh no, the build guy is on holiday”)
4.    No reuse & difficult integration between different projects
5.    No versioning!
Packaging & lifecycle matter
  It’s not *just* about the content, form counts!

•  My quick tips:
1.  Give time to define build /Application Lifecycle Mgmt strategy
      •      Modules Requirements & Tooling
      •      Deployment / environment promotion process
      •      Contracts with Operations / System Administrators
2.  Use a standard tool OR document your procedure thoroughly
3.  Leverage AMPs as distribution packaging atom
      •      Can also be used during day by day development
4.         Automate (packaging), automate (release notes), automate (CI)!
5.         Minimize MANUAL activity, during development and upon release
6.         Version (code & binaries) !!!
7.         If I was you, I’ll just use Maven J
Why not just use the SDK?
  IMHO Alfresco Development could be much
     quicker and automated ==> FUN!

•  Community limitations of current SDK:
1.  Non standard (not even de facto), requires too much RTM
2.  200MB and growing? Not always need for EVERYTHING…
3.  Alfresco not available in mainstream download channels
•  Enterprise limitations of current SDK:
1.    Eclipse bound, so not suitable for other IDEs or automation
2.    No dependency management / control
3.    Ant sample builds covers a small subset of the Alfresco landscape
4.    Not Enterprise process ready
By the way…

 Building Alfresco applications with Maven
                    ≠
       Alfresco to build with Maven


  Currently there is no plan to build
        Alfresco with Maven
Maven Alfresco Lifecycle
•  Vision
“Provide a Community / Enterprise unified concise approach to
support the full lifecycle of an Alfresco application, from project
creation to release and integration in enterprise processes”

•  State of the nation
    •  Mature project (since 2007) à Set of archetypes / plugins
       –  Used by Jive toolkit & Bulk Import tool
    •  Current version 3.9.1 in http://maven.alfresco.com
    •  Testing against 4.x EE underway
•  Stay tuned at maven-alfresco@googlegroups.com
•  Get ithttp://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven
Maven Alfresco Lifecycle features
•  Current release (3.9.1, tested with 4.0 CE)
   –    Alfresco, Share, AMP archetypes
   –    Run Alfresco embedded in Jetty
   –    WAR can depend on AMP (no MMT required)
   –    Per environment separate configuration
   –    Mandatory integrated versioning!
   –    Release & distribution

•  Roadmap (will be 4.0, to be tested with 4.0 EE)
   –  Multi module archetype
         •  Repo/Share/Solr/AMPs
         •  Super POM dependency management
   –  Integrated support for TDD
   –  Run embedded in favorite appserver
   –  General cleanup
Maven support from Alfresco
Community Support
   –  Maven Alfresco Lifecycle Available as of 2007
   –  Artifacts on http://maven.alfresco.com (Nexus) as of 2009
         •  4.x Community artifacts already available
         •  Still manual deployment L

Enterprise Support
1.  Target: 4.x EE deployed on http://maven.alfresco.com
    1.  Only JARs / WARs
    2.  NO POMs
2.  New release of Maven Alfresco Lifecycle
    •    Working to get it to a full “alternative” to Eclipse SDK

Already/soon in HEAD
1.  Automated artifacts deployment to maven.alfresco.com
2.  More granular dependency definition in .classpath files

Más contenido relacionado

La actualidad más candente

Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 
Webinar: OpenStack Best Practices for Production
Webinar: OpenStack Best Practices for ProductionWebinar: OpenStack Best Practices for Production
Webinar: OpenStack Best Practices for ProductionPlatform9
 
Continuous Testing in the Cloud
Continuous Testing in the CloudContinuous Testing in the Cloud
Continuous Testing in the CloudSauce Labs
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Ian Robinson
 
Mavenizing your Liferay project
Mavenizing your Liferay projectMavenizing your Liferay project
Mavenizing your Liferay projectmimacom
 
Updating WordPress Themes, Plugins, and Core Safely
Updating WordPress Themes, Plugins, and Core SafelyUpdating WordPress Themes, Plugins, and Core Safely
Updating WordPress Themes, Plugins, and Core SafelyAngela Bowman
 
Service Configuration Management for Rapid Growth
Service Configuration Management for Rapid GrowthService Configuration Management for Rapid Growth
Service Configuration Management for Rapid GrowthTakashi Someda
 
Introduction to Apache Maven
Introduction to Apache MavenIntroduction to Apache Maven
Introduction to Apache MavenRajind Ruparathna
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJoe Kutner
 
PhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsPhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsAlex Blom
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)My own sweet home!
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsJohn Ferguson Smart Limited
 
Beyond the Release: CI That Transforms Organizations
Beyond the Release: CI That Transforms OrganizationsBeyond the Release: CI That Transforms Organizations
Beyond the Release: CI That Transforms OrganizationsSauce Labs
 
Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016David Brattoli
 
AFNetworking
AFNetworking AFNetworking
AFNetworking joaopmaia
 
Selenium and Sauce Labs
Selenium and Sauce LabsSelenium and Sauce Labs
Selenium and Sauce Labshugs
 

La actualidad más candente (20)

Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
Webinar: OpenStack Best Practices for Production
Webinar: OpenStack Best Practices for ProductionWebinar: OpenStack Best Practices for Production
Webinar: OpenStack Best Practices for Production
 
Continuous Testing in the Cloud
Continuous Testing in the CloudContinuous Testing in the Cloud
Continuous Testing in the Cloud
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
 
Building an iOS Build Server
Building an iOS Build ServerBuilding an iOS Build Server
Building an iOS Build Server
 
Mavenizing your Liferay project
Mavenizing your Liferay projectMavenizing your Liferay project
Mavenizing your Liferay project
 
Updating WordPress Themes, Plugins, and Core Safely
Updating WordPress Themes, Plugins, and Core SafelyUpdating WordPress Themes, Plugins, and Core Safely
Updating WordPress Themes, Plugins, and Core Safely
 
Service Configuration Management for Rapid Growth
Service Configuration Management for Rapid GrowthService Configuration Management for Rapid Growth
Service Configuration Management for Rapid Growth
 
Introduction to Apache Maven
Introduction to Apache MavenIntroduction to Apache Maven
Introduction to Apache Maven
 
JavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor AppJavaOne 2015: 12 Factor App
JavaOne 2015: 12 Factor App
 
PhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsPhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember Apps
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 
Aem offline content
Aem offline contentAem offline content
Aem offline content
 
Keep Applications Online
Keep Applications OnlineKeep Applications Online
Keep Applications Online
 
Beyond the Release: CI That Transforms Organizations
Beyond the Release: CI That Transforms OrganizationsBeyond the Release: CI That Transforms Organizations
Beyond the Release: CI That Transforms Organizations
 
Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016Varying WordPress Development Environment WordCamp Cincinnati 2016
Varying WordPress Development Environment WordCamp Cincinnati 2016
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
 
Selenium and Sauce Labs
Selenium and Sauce LabsSelenium and Sauce Labs
Selenium and Sauce Labs
 

Destacado

BP-2 Support’s Most Common Questions
BP-2 Support’s Most Common QuestionsBP-2 Support’s Most Common Questions
BP-2 Support’s Most Common QuestionsAlfresco Software
 
Tech talk live customizing alfresco
Tech talk live   customizing alfrescoTech talk live   customizing alfresco
Tech talk live customizing alfrescoAlfresco Software
 
Open Source Barometer - by Alfresco - Nov 2008
Open Source Barometer - by Alfresco - Nov 2008Open Source Barometer - by Alfresco - Nov 2008
Open Source Barometer - by Alfresco - Nov 2008Alfresco Software
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldAlfresco Software
 
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...Alfresco Software
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsAlfresco Software
 

Destacado (8)

BP-2 Support’s Most Common Questions
BP-2 Support’s Most Common QuestionsBP-2 Support’s Most Common Questions
BP-2 Support’s Most Common Questions
 
Tech talk live customizing alfresco
Tech talk live   customizing alfrescoTech talk live   customizing alfresco
Tech talk live customizing alfresco
 
Activiti & Vaddin
Activiti & VaddinActiviti & Vaddin
Activiti & Vaddin
 
Open Source Barometer - by Alfresco - Nov 2008
Open Source Barometer - by Alfresco - Nov 2008Open Source Barometer - by Alfresco - Nov 2008
Open Source Barometer - by Alfresco - Nov 2008
 
CMIS REST HTTP
CMIS REST HTTPCMIS REST HTTP
CMIS REST HTTP
 
PLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real WorldPLAT-1 CMIS in the Real World
PLAT-1 CMIS in the Real World
 
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
 
PLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in GrailsPLAT-16 Using Enterprise Content in Grails
PLAT-16 Using Enterprise Content in Grails
 

Similar a Packaging & Deploying Extensions with Maven

Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesAlfresco Software
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesAlfresco Software
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Joelith
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
How to setup a development environment for ONAP
How to setup a development environment for ONAPHow to setup a development environment for ONAP
How to setup a development environment for ONAPVictor Morales
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017juvenxu
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsAlfresco Software
 
Implementing alfresco as a content platform with zaizi
Implementing alfresco as a content platform with zaiziImplementing alfresco as a content platform with zaizi
Implementing alfresco as a content platform with zaiziAlfresco Software
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment6D Global
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deploymentklcodanr
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsBrad Williams
 
S/W Design and Modularity using Maven
S/W Design and Modularity using MavenS/W Design and Modularity using Maven
S/W Design and Modularity using MavenScheidt & Bachmann
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgePhil Pursglove
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlChris Muir
 
MuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDMuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDPace Integration
 

Similar a Packaging & Deploying Extensions with Maven (20)

Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best Practices
 
Upgrading to Alfresco 6
Upgrading to Alfresco 6Upgrading to Alfresco 6
Upgrading to Alfresco 6
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
2009-04-21 - Alfresco and Maven NXP case study
2009-04-21 - Alfresco and Maven NXP case study2009-04-21 - Alfresco and Maven NXP case study
2009-04-21 - Alfresco and Maven NXP case study
 
How to setup a development environment for ONAP
How to setup a development environment for ONAPHow to setup a development environment for ONAP
How to setup a development environment for ONAP
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
Mavennotes.pdf
Mavennotes.pdfMavennotes.pdf
Mavennotes.pdf
 
Implementing alfresco as a content platform with zaizi
Implementing alfresco as a content platform with zaiziImplementing alfresco as a content platform with zaizi
Implementing alfresco as a content platform with zaizi
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Agile sites @ telmore
Agile sites @ telmore Agile sites @ telmore
Agile sites @ telmore
 
S/W Design and Modularity using Maven
S/W Design and Modularity using MavenS/W Design and Modularity using Maven
S/W Design and Modularity using Maven
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version Control
 
MuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICDMuleSoft London Community November 2019 - MuleSoft and CICD
MuleSoft London Community November 2019 - MuleSoft and CICD
 

Más de Alfresco Software

Alfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Software
 
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Software
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Software
 
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Software
 
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Software
 
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Software
 
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Software
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Software
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Software
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Software
 
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Software
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Software
 
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Software
 
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Software
 
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Software
 
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Software
 
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Software
 
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Software
 

Más de Alfresco Software (20)

Alfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossierAlfresco Day Benelux Inholland studentendossier
Alfresco Day Benelux Inholland studentendossier
 
Alfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management applicationAlfresco Day Benelux Hogeschool Inholland Records Management application
Alfresco Day Benelux Hogeschool Inholland Records Management application
 
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion HogescholenAlfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
Alfresco Day BeNelux: Customer Success Showcase - Saxion Hogescholen
 
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente AmsterdamAlfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
Alfresco Day BeNelux: Customer Success Showcase - Gemeente Amsterdam
 
Alfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of AlfrescoAlfresco Day BeNelux: The success of Alfresco
Alfresco Day BeNelux: The success of Alfresco
 
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo GroupAlfresco Day BeNelux: Customer Success Showcase - Credendo Group
Alfresco Day BeNelux: Customer Success Showcase - Credendo Group
 
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About FlowAlfresco Day BeNelux: Digital Transformation - It's All About Flow
Alfresco Day BeNelux: Digital Transformation - It's All About Flow
 
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
Alfresco Day Vienna 2016: Activiti – ein Katalysator für die DMS-Strategie be...
 
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
Alfresco Day Vienna 2016: Elektronische Geschäftsprozesse auf Basis von Alfre...
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest API
 
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-KonsoleAlfresco Day Vienna 2016: Support Tools für die Admin-Konsole
Alfresco Day Vienna 2016: Support Tools für die Admin-Konsole
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
 
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
Alfresco Day Vienna 2016: Activiti goes enterprise: Die Evolution der BPM Sui...
 
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: WesternacherAlfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
Alfresco Day Vienna 2016: Partner Lightning Talk: Westernacher
 
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
Alfresco Day Vienna 2016: Bringing Content & Process together with the App De...
 
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novumAlfresco Day Vienna 2016: Partner Lightning Talk - it-novum
Alfresco Day Vienna 2016: Partner Lightning Talk - it-novum
 
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
Alfresco Day Vienna 2016: How to Achieve Digital Flow in the Enterprise - Joh...
 
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
Alfresco Day Warsaw 2016 - Czy możliwe jest spełnienie wszystkich regulacji p...
 
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - SafranAlfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
Alfresco Day Warsaw 2016: Identyfikacja i podpiselektroniczny - Safran
 
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital BusinessAlfresco Day Warsaw 2016: Advancing the Flow of Digital Business
Alfresco Day Warsaw 2016: Advancing the Flow of Digital Business
 

Último

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Packaging & Deploying Extensions with Maven

  • 1. Tech Talk Live: Packaging & Deploying Extensions February 2012 Gabriele Columbro, Jared Ottley, Richard McKnight, Jeff Potts
  • 2. Rough Agenda •  Alfresco Add-Ons •  Packaging •  Deployment •  Project Structure & Builds •  More on Maven
  • 3. Introducing Alfresco Add-Ons •  http://addons.alfresco.com •  Directory of Alfresco add-ons and extensions –  Not a code hosting site –  Replaces Alfresco Forge •  Eventually integrated into the platform –  Community, Enterprise, Cloud •  May feature monetization at some point
  • 4.
  • 5. Add-ons Timeline •  Alfresco Forge is no longer accepting new projects •  Add-ons out of beta in February •  Register for an account, begin listing your add-ons today •  New releases to follow regularly •  Platform integration expected with Alfresco 5.x
  • 7. What is an AMP? •  Alfresco Module Package •  A zip with a defined structure •  Gets “installed” into an alfresco or share WAR using the Module Management Tool (MMT) •  The best practice for distributing add-ons •  http://wiki.alfresco.com/wiki/AMP_Files
  • 8. Reasons to Dislike AMPs •  Requires a proprietary tool (MMT) •  Longer dev cycles (merge, deploy entire WAR) versus unzipping/copying •  Lacks value-add features such as merge •  Lacks an undeploy
  • 9. Why You Should Use Them Anyway •  Namespacing built in •  Can include bootstrapping logic •  Can be used for both repo and Share tiers •  Repeatable deployment process for Ops •  We (the Royal “We”) need one “module” approach for add-ons •  Expect AMP/MMT improvements in the coming year
  • 10. Best Practices •  Package as an AMP •  Use reverse domain for module ID •  Consider using a straight copy for local Dev, then package as an AMP for Test/QA/ Prod
  • 12. Where Should I Stick This? •  If you’re using AMPs, this isn’t an issue •  Otherwise… –  Repo: WEB-INF/classes/alfresco/extension –  Share: WEB-INF/classes/alfresco/web- extension •  http://wiki.alfresco.com/wiki/ Packaging_And_Deploying_Extensions
  • 13. Best Practices •  Use AMPs so you don’t have to worry about it •  Separate your repo tier extensions from your Share tier extensions •  Deploy to the appropriate webapp, not to Tomcat shared
  • 15. Best Practices •  “More projects” is usually better than “one project” –  One each for shared config, server settings –  For each module, one repo tier, one Share tier •  Have a repeatable build •  Incorporate minification into your build •  Ant versus Maven
  • 17. Alfresco field expertise tells me that… •  Community / Enterprise Networks 1.  Develop their own build system 2.  Generally leverage the Eclipse SDK but in many different flavors 3.  Rarely do test driven development (difficult) or CI 4.  Often use a poor / no packaging 5.  Either manual (error prone) or over-complex .doc based deployment strategy 6.  Often not contribute as it takes time to understand “How To” 7.  Almost no reuse/sharing between projects •  Common pitfalls 1.  Wrong environmental properties 2.  AMP leftovers in the WAR from previous deployments 3.  Single point of failure (“oh no, the build guy is on holiday”) 4.  No reuse & difficult integration between different projects 5.  No versioning!
  • 18. Packaging & lifecycle matter It’s not *just* about the content, form counts! •  My quick tips: 1.  Give time to define build /Application Lifecycle Mgmt strategy •  Modules Requirements & Tooling •  Deployment / environment promotion process •  Contracts with Operations / System Administrators 2.  Use a standard tool OR document your procedure thoroughly 3.  Leverage AMPs as distribution packaging atom •  Can also be used during day by day development 4.  Automate (packaging), automate (release notes), automate (CI)! 5.  Minimize MANUAL activity, during development and upon release 6.  Version (code & binaries) !!! 7.  If I was you, I’ll just use Maven J
  • 19. Why not just use the SDK? IMHO Alfresco Development could be much quicker and automated ==> FUN! •  Community limitations of current SDK: 1.  Non standard (not even de facto), requires too much RTM 2.  200MB and growing? Not always need for EVERYTHING… 3.  Alfresco not available in mainstream download channels •  Enterprise limitations of current SDK: 1.  Eclipse bound, so not suitable for other IDEs or automation 2.  No dependency management / control 3.  Ant sample builds covers a small subset of the Alfresco landscape 4.  Not Enterprise process ready
  • 20. By the way… Building Alfresco applications with Maven ≠ Alfresco to build with Maven Currently there is no plan to build Alfresco with Maven
  • 21. Maven Alfresco Lifecycle •  Vision “Provide a Community / Enterprise unified concise approach to support the full lifecycle of an Alfresco application, from project creation to release and integration in enterprise processes” •  State of the nation •  Mature project (since 2007) à Set of archetypes / plugins –  Used by Jive toolkit & Bulk Import tool •  Current version 3.9.1 in http://maven.alfresco.com •  Testing against 4.x EE underway •  Stay tuned at maven-alfresco@googlegroups.com •  Get ithttp://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven
  • 22. Maven Alfresco Lifecycle features •  Current release (3.9.1, tested with 4.0 CE) –  Alfresco, Share, AMP archetypes –  Run Alfresco embedded in Jetty –  WAR can depend on AMP (no MMT required) –  Per environment separate configuration –  Mandatory integrated versioning! –  Release & distribution •  Roadmap (will be 4.0, to be tested with 4.0 EE) –  Multi module archetype •  Repo/Share/Solr/AMPs •  Super POM dependency management –  Integrated support for TDD –  Run embedded in favorite appserver –  General cleanup
  • 23. Maven support from Alfresco Community Support –  Maven Alfresco Lifecycle Available as of 2007 –  Artifacts on http://maven.alfresco.com (Nexus) as of 2009 •  4.x Community artifacts already available •  Still manual deployment L Enterprise Support 1.  Target: 4.x EE deployed on http://maven.alfresco.com 1.  Only JARs / WARs 2.  NO POMs 2.  New release of Maven Alfresco Lifecycle •  Working to get it to a full “alternative” to Eclipse SDK Already/soon in HEAD 1.  Automated artifacts deployment to maven.alfresco.com 2.  More granular dependency definition in .classpath files