SlideShare a Scribd company logo
CQ5 Development Setup,
Maven Build and Deployment
with Dan Klco
Six Dimensions
www.sixdimensions.com
www.6dlabs.com
6/21/2012
2
About Me
 Yes, that is how my last name is spelled
 WCMS space for 5+ years
 EMC WebPublisher/Documentum, Drupal, CQ5…
 Participated in many WCM Implementations
 Small, medium and large projects
 Multiple different technologies and build methods
 Support, enhancement, migration and new implementations
3
Purpose
 What is the purpose of this webinar?
 To understand why your project structure, build process and
deploy process are important
 To explore methods of building and deploying CQ5 projects
 To learn about current best practices and industry-leading
tools
4
Why is my build process
important?
“Oh, I just wish I understood why. Why I should care.” – Zap
Brannigan
5
Bad build process results in…
 Chaos
 Not sharing complete code base
 No code/application versioning
 No single version of the ‘truth’
 Slow build process
 Increased testing turnaround
 Slower developer progress
 Difficult release process
6
Build Processes - Manual
 Build from CRXDE & Packages
 Advantages: Easy, works out of the box
 Disadvantages: chaos, code versioning difficult
 Build from CRXDE & SVN
 Advantages: share code, easy, works out of the box
 Disadvantages: more complicated builds, SVN integration
awkward
7
Build Processes - Automatic
 Build from IDE & ANT
 Advantages: Very customizable, automatic, any SCM
supported
 Disadvantages: lots of extra development, mostly not out of
the box
 Build from IDE & Maven
 Advantages: customizable, automatic, any SCM supported,
most tasks available as plugins, integrated dependency
management
 Disadvantages: not out of the box
8
Klco’s Hierarchy of Build Needs
9
Implementing Maven Builds
I preferred the notion of convention over configuration. I
wanted a project's infrastructure to look the same and work the
same…
-Jason van Zyl
10
Maven Build Rules
 IDE/platform agnostic
 Perform all operations
 Properties should be centralized
11
Project Structure
 Maven reactor, manages
building of sub-modules
 Major code functionality
separated into different
projects
 All code built into a single
package by the package
project
/Root
/Core
/Services
/Taglib
/Servlets
/Vault
/Package
12
Resolving Dependencies
 Hosted Maven Repository -
http://archiva.apache.org/docs/1.3.5/quick-start.html
 Advantages: most control, deploy custom artifacts
 Disadvantages: setup, hosting cost, requires internet access
 Local Maven Repository -
http://dev.day.com/content/kb/home/cq5/Development/maven/HowToUseCQ5AsMavenRepository.html
 Advantages: easy, always available
 Disadvantages: not shared with team
 Adobe Maven Repository -
http://repo.adobe.com/nexus/content/groups/public
 Advantages: latest code, can browse repo
 Disadvantages: cannot deploy artifacts, requires internet access
13
Developer Tools
 m2e – Maven Plugin for Eclipse
 Run Maven Builds inside Eclipse
 Import and configure Maven projects from any SCM
 VaultClipse - Import/Export Tool
 Quick Push/Pull from CQ Repositories
 J2EE Eclipse
 Includes JSP, CSS & XML Editors
14
Required Maven Plugins
Bundle Plugin for Maven
http://felix.apache.org/site/apache-felix-maven-bundle-plugin-
bnd.html
Used to enable Maven to create OSGi Bundles.
Apache Felix Maven SCR Plugin
http://felix.apache.org/site/apache-felix-maven-scr-
plugin.html
Generates SCR descriptors based on Apache Felix SCR
Annotations.
15
Deployment Options
 CQ Deploy Plugin
http://cq-deploy-plugin.6dlabs.com/
 Advantages: deploys bundles, legacy API, easy use, maven
central
 Disadvantages: not as full-featured
 Content Package Maven Plugin
http://dev.day.com/docs/en/cq/current/core/how_to/how_to_use_the_vlttool/vlt-mavenplugin.html
 Advantages: feature rich, easy use
 Disadvantages: does not deploy bundles
 Groovy/cURL Scripts
 Advantages: completely custom
 Disadvantages: more to maintain, not future-proof
16
Continuous Integration
Integrate Early and Often
-Gerard Meszaros
17
What is Continuous Integration
 Dedicated server or application
 Continuously builds and deploys code
 Runs automatically – can also be kicked off manually
18
Benefits of CI
 Integrate early and often
 Constant and frequent builds
 Automated deployments
 Early warnings of broken/conflicting code
 Automatic Unit Test & Code Quality checks
 Blame!
19
CI Best Practices
 Any CI Maven-capable Server will work
 CI Server should install to DEV
 Author and Publish
 Manual release process to QA & Prod
 Run at least daily
 Ideally every hour or two or when code is updated
 Same build process as Local Developers and releases
20
Code LifeCycle
21
Problems & Pitfalls
 CSS & designer Integration
 Large Team Sharing/Duplication
 Naming Conflicts
 Misalignment Between Teams (Integration Hell)
22
Thank You!
 6D Labs & Six Dimensions
 For more information please contact:
 TJ Iaciofano: tj.iaciofano@sixdimensions.com
 www.6dlabs.com
 www.sixdimensions.com

More Related Content

PPTX
Adobe CQ5 for Developers - Introduction
PDF
CQ5 and Sling overview
PPTX
Introdcution to Adobe CQ
PPTX
Catch 22: FLex APps
PPTX
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
PDF
Afrimadoni the power of docker
PPTX
PHP Indonesia - Nodejs Web Development
PDF
Adobe AEM for Business Heads
Adobe CQ5 for Developers - Introduction
CQ5 and Sling overview
Introdcution to Adobe CQ
Catch 22: FLex APps
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
Afrimadoni the power of docker
PHP Indonesia - Nodejs Web Development
Adobe AEM for Business Heads

What's hot (19)

PPTX
Bundling your front-end with Webpack
PPTX
Building and Managing Projects with Maven
PDF
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
PDF
Frontend Application Architecture, Patterns, and Workflows
PPTX
Web development using nodejs
PPTX
Maven
PDF
Introducing CQ 5.1
PPTX
Packing for the Web with Webpack
PPTX
An Overview on Nuxt.js
PDF
Choosing the best JavaScript framework/library/toolkit
PPTX
Frontend architecture design for large(r) team final
PPT
Nodejs - Building a RESTful API
PPTX
Javascript Frameworks Comparison
PDF
Webdriver.io
PDF
Grunt.js and Yeoman, Continous Integration
PPTX
DotNet MVC and webpack + Babel + react
PPTX
002. Working with Webpack
PDF
Debugging WordPress
PDF
The MEAN Stack
Bundling your front-end with Webpack
Building and Managing Projects with Maven
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
Frontend Application Architecture, Patterns, and Workflows
Web development using nodejs
Maven
Introducing CQ 5.1
Packing for the Web with Webpack
An Overview on Nuxt.js
Choosing the best JavaScript framework/library/toolkit
Frontend architecture design for large(r) team final
Nodejs - Building a RESTful API
Javascript Frameworks Comparison
Webdriver.io
Grunt.js and Yeoman, Continous Integration
DotNet MVC and webpack + Babel + react
002. Working with Webpack
Debugging WordPress
The MEAN Stack
Ad

Viewers also liked (12)

PDF
AEM Best Practices for Component Development
PDF
Hubot + Slack + AEM
PPTX
User interface customization for aem6 circuit
PPTX
UI Customization in AEM 6.0
PPTX
Simplify and Accelerate App Development with Adobe AEM Mobile
PDF
Adobe AEM - From Eventing to Job Processing
PDF
Aem dispatcher – tips & tricks
PDF
AEM 6.1 User Interface Customization
PDF
REST in AEM
PDF
The six key steps to AEM architecture
PDF
User Interface customization for AEM 6
PPTX
Building Quality into the AEM Publication Workflow with Active Standards by D...
AEM Best Practices for Component Development
Hubot + Slack + AEM
User interface customization for aem6 circuit
UI Customization in AEM 6.0
Simplify and Accelerate App Development with Adobe AEM Mobile
Adobe AEM - From Eventing to Job Processing
Aem dispatcher – tips & tricks
AEM 6.1 User Interface Customization
REST in AEM
The six key steps to AEM architecture
User Interface customization for AEM 6
Building Quality into the AEM Publication Workflow with Active Standards by D...
Ad

Similar to CQ5 Development Setup, Maven Build and Deployment (20)

PPTX
Ci jenkins maven svn
PDF
SE2018_Lec-22_-Continuous-Integration-Tools
PPT
Presentation 1 open source tools in continuous integration environment v1.0
PPT
Java Build Tools
PPT
software technology benchmarking
ODP
Maven in Java EE project
PPT
Build tool
PDF
CQ Maven Methods
PDF
CQCON CQ Maven Methods
PDF
Intelligent Projects with Maven - DevFest Istanbul
PPTX
PPTX
Introduction to apache maven
PPTX
EVOLVE'13 | Keynote | Richard Brown
PPTX
Continuous Deployment Pipeline with maven
PPTX
An Introduction to Maven
PDF
Mavennotes.pdf
PDF
TMF2014 CI-CD Workshop Michael Palotas
 
KEY
Wonderful World of Maven
PPTX
Build Tools & Maven
Ci jenkins maven svn
SE2018_Lec-22_-Continuous-Integration-Tools
Presentation 1 open source tools in continuous integration environment v1.0
Java Build Tools
software technology benchmarking
Maven in Java EE project
Build tool
CQ Maven Methods
CQCON CQ Maven Methods
Intelligent Projects with Maven - DevFest Istanbul
Introduction to apache maven
EVOLVE'13 | Keynote | Richard Brown
Continuous Deployment Pipeline with maven
An Introduction to Maven
Mavennotes.pdf
TMF2014 CI-CD Workshop Michael Palotas
 
Wonderful World of Maven
Build Tools & Maven

Recently uploaded (20)

PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Cloud computing and distributed systems.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Empathic Computing: Creating Shared Understanding
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The Rise and Fall of 3GPP – Time for a Sabbatical?
“AI and Expert System Decision Support & Business Intelligence Systems”
Cloud computing and distributed systems.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools
Empathic Computing: Creating Shared Understanding
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
A comparative analysis of optical character recognition models for extracting...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

CQ5 Development Setup, Maven Build and Deployment

  • 1. CQ5 Development Setup, Maven Build and Deployment with Dan Klco Six Dimensions www.sixdimensions.com www.6dlabs.com 6/21/2012
  • 2. 2 About Me  Yes, that is how my last name is spelled  WCMS space for 5+ years  EMC WebPublisher/Documentum, Drupal, CQ5…  Participated in many WCM Implementations  Small, medium and large projects  Multiple different technologies and build methods  Support, enhancement, migration and new implementations
  • 3. 3 Purpose  What is the purpose of this webinar?  To understand why your project structure, build process and deploy process are important  To explore methods of building and deploying CQ5 projects  To learn about current best practices and industry-leading tools
  • 4. 4 Why is my build process important? “Oh, I just wish I understood why. Why I should care.” – Zap Brannigan
  • 5. 5 Bad build process results in…  Chaos  Not sharing complete code base  No code/application versioning  No single version of the ‘truth’  Slow build process  Increased testing turnaround  Slower developer progress  Difficult release process
  • 6. 6 Build Processes - Manual  Build from CRXDE & Packages  Advantages: Easy, works out of the box  Disadvantages: chaos, code versioning difficult  Build from CRXDE & SVN  Advantages: share code, easy, works out of the box  Disadvantages: more complicated builds, SVN integration awkward
  • 7. 7 Build Processes - Automatic  Build from IDE & ANT  Advantages: Very customizable, automatic, any SCM supported  Disadvantages: lots of extra development, mostly not out of the box  Build from IDE & Maven  Advantages: customizable, automatic, any SCM supported, most tasks available as plugins, integrated dependency management  Disadvantages: not out of the box
  • 9. 9 Implementing Maven Builds I preferred the notion of convention over configuration. I wanted a project's infrastructure to look the same and work the same… -Jason van Zyl
  • 10. 10 Maven Build Rules  IDE/platform agnostic  Perform all operations  Properties should be centralized
  • 11. 11 Project Structure  Maven reactor, manages building of sub-modules  Major code functionality separated into different projects  All code built into a single package by the package project /Root /Core /Services /Taglib /Servlets /Vault /Package
  • 12. 12 Resolving Dependencies  Hosted Maven Repository - http://archiva.apache.org/docs/1.3.5/quick-start.html  Advantages: most control, deploy custom artifacts  Disadvantages: setup, hosting cost, requires internet access  Local Maven Repository - http://dev.day.com/content/kb/home/cq5/Development/maven/HowToUseCQ5AsMavenRepository.html  Advantages: easy, always available  Disadvantages: not shared with team  Adobe Maven Repository - http://repo.adobe.com/nexus/content/groups/public  Advantages: latest code, can browse repo  Disadvantages: cannot deploy artifacts, requires internet access
  • 13. 13 Developer Tools  m2e – Maven Plugin for Eclipse  Run Maven Builds inside Eclipse  Import and configure Maven projects from any SCM  VaultClipse - Import/Export Tool  Quick Push/Pull from CQ Repositories  J2EE Eclipse  Includes JSP, CSS & XML Editors
  • 14. 14 Required Maven Plugins Bundle Plugin for Maven http://felix.apache.org/site/apache-felix-maven-bundle-plugin- bnd.html Used to enable Maven to create OSGi Bundles. Apache Felix Maven SCR Plugin http://felix.apache.org/site/apache-felix-maven-scr- plugin.html Generates SCR descriptors based on Apache Felix SCR Annotations.
  • 15. 15 Deployment Options  CQ Deploy Plugin http://cq-deploy-plugin.6dlabs.com/  Advantages: deploys bundles, legacy API, easy use, maven central  Disadvantages: not as full-featured  Content Package Maven Plugin http://dev.day.com/docs/en/cq/current/core/how_to/how_to_use_the_vlttool/vlt-mavenplugin.html  Advantages: feature rich, easy use  Disadvantages: does not deploy bundles  Groovy/cURL Scripts  Advantages: completely custom  Disadvantages: more to maintain, not future-proof
  • 16. 16 Continuous Integration Integrate Early and Often -Gerard Meszaros
  • 17. 17 What is Continuous Integration  Dedicated server or application  Continuously builds and deploys code  Runs automatically – can also be kicked off manually
  • 18. 18 Benefits of CI  Integrate early and often  Constant and frequent builds  Automated deployments  Early warnings of broken/conflicting code  Automatic Unit Test & Code Quality checks  Blame!
  • 19. 19 CI Best Practices  Any CI Maven-capable Server will work  CI Server should install to DEV  Author and Publish  Manual release process to QA & Prod  Run at least daily  Ideally every hour or two or when code is updated  Same build process as Local Developers and releases
  • 21. 21 Problems & Pitfalls  CSS & designer Integration  Large Team Sharing/Duplication  Naming Conflicts  Misalignment Between Teams (Integration Hell)
  • 22. 22 Thank You!  6D Labs & Six Dimensions  For more information please contact:  TJ Iaciofano: tj.iaciofano@sixdimensions.com  www.6dlabs.com  www.sixdimensions.com

Editor's Notes

  • #16: Talk up CQ Deploy Plugin Just talk quick about the Content Package Maven Plugin Talk about issues in migrating between CQ versions with Groovy, cUrl, etc scripts, you have to test across multiple versions & support new versions
  • #18: Talk real quick about options: Bamboo – Let someone else deal with it  Jenkins – so simple your grandma could install it
  • #19: Talk about STMicro w/ Toby Integrating with teams in 3 countries Value of knowing when build breaks… even at 3am
  • #22: CSS / Designer integration – always awkward Large team sharing – talk about gm.com Naming conflicts – talk about duplicate components, etc Misalignment – talk about cooper with global vs standard dev, what happens when one project gets behind