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

What's hot

What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5Robert MacLean
 
WordPress development checklist
WordPress development checklistWordPress development checklist
WordPress development checklistBinh Quan Duc
 
Ryan king wp-plugin-presentation
Ryan king wp-plugin-presentationRyan king wp-plugin-presentation
Ryan king wp-plugin-presentationRyan King
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
 
Integration Testing with Behat drupal
Integration Testing with Behat drupalIntegration Testing with Behat drupal
Integration Testing with Behat drupalOscar Merida
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP WorldIdaf_1er
 
"How to deploy to production 10 times a day" Андрей Шумада
"How to deploy to production 10 times a day" Андрей Шумада"How to deploy to production 10 times a day" Андрей Шумада
"How to deploy to production 10 times a day" Андрей ШумадаFwdays
 
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...tdc-globalcode
 
Maven 2 - more than a build tool
Maven 2 - more than a build toolMaven 2 - more than a build tool
Maven 2 - more than a build toolHarald Soevik
 
Glass Fish Esb Launch Feb10 2009 Part A Frank K
Glass Fish Esb Launch Feb10 2009 Part A Frank KGlass Fish Esb Launch Feb10 2009 Part A Frank K
Glass Fish Esb Launch Feb10 2009 Part A Frank KEduardo Pelegri-Llopart
 
Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Ioan Eugen Stan
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With JenkinsEdureka!
 

What's hot (20)

Maven
MavenMaven
Maven
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
WordPress development checklist
WordPress development checklistWordPress development checklist
WordPress development checklist
 
Ryan king wp-plugin-presentation
Ryan king wp-plugin-presentationRyan king wp-plugin-presentation
Ryan king wp-plugin-presentation
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014
 
Integration Testing with Behat drupal
Integration Testing with Behat drupalIntegration Testing with Behat drupal
Integration Testing with Behat drupal
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014
 
Spring boot competitive tests
Spring boot competitive testsSpring boot competitive tests
Spring boot competitive tests
 
Continuous Integration In A PHP World
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
 
Blazor v1.1
Blazor v1.1Blazor v1.1
Blazor v1.1
 
"How to deploy to production 10 times a day" Андрей Шумада
"How to deploy to production 10 times a day" Андрей Шумада"How to deploy to production 10 times a day" Андрей Шумада
"How to deploy to production 10 times a day" Андрей Шумада
 
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...
TDC2016POA | Trilha Web - Garanta a segurança de suas aplicações Web com Keyc...
 
Maven 2 - more than a build tool
Maven 2 - more than a build toolMaven 2 - more than a build tool
Maven 2 - more than a build tool
 
Glass Fish Esb Launch Feb10 2009 Part A Frank K
Glass Fish Esb Launch Feb10 2009 Part A Frank KGlass Fish Esb Launch Feb10 2009 Part A Frank K
Glass Fish Esb Launch Feb10 2009 Part A Frank K
 
Spring competitive tests
Spring competitive testsSpring competitive tests
Spring competitive tests
 
Confoo
ConfooConfoo
Confoo
 
Spring boot competitive tests
Spring boot competitive testsSpring boot competitive tests
Spring boot competitive tests
 
Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014Hands on continouous delivery, I TAKE 2014
Hands on continouous delivery, I TAKE 2014
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With Jenkins
 

Viewers also liked

SteriPack Service_Company Profile 2016
SteriPack Service_Company Profile 2016SteriPack Service_Company Profile 2016
SteriPack Service_Company Profile 2016Andrey Petropavlovskiy
 
Uso de las tics en el campo educativo e industrial
Uso de las tics  en el campo educativo e industrialUso de las tics  en el campo educativo e industrial
Uso de las tics en el campo educativo e industrialrachell06
 
FINANÇAS COMPORTAMENTAIS:
FINANÇAS COMPORTAMENTAIS:FINANÇAS COMPORTAMENTAIS:
FINANÇAS COMPORTAMENTAIS:Sayurï Yamane
 
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07Teresa Clotilde Ojeda Sánchez
 
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
 
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08Teresa Clotilde Ojeda Sánchez
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
 
Adobe Experience Manager - 6th Edition by Cedric Huesler
Adobe Experience Manager - 6th Edition by Cedric HueslerAdobe Experience Manager - 6th Edition by Cedric Huesler
Adobe Experience Manager - 6th Edition by Cedric HueslerAEM HUB
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 

Viewers also liked (11)

SteriPack Service_Company Profile 2016
SteriPack Service_Company Profile 2016SteriPack Service_Company Profile 2016
SteriPack Service_Company Profile 2016
 
Uso de las tics en el campo educativo e industrial
Uso de las tics  en el campo educativo e industrialUso de las tics  en el campo educativo e industrial
Uso de las tics en el campo educativo e industrial
 
FINANÇAS COMPORTAMENTAIS:
FINANÇAS COMPORTAMENTAIS:FINANÇAS COMPORTAMENTAIS:
FINANÇAS COMPORTAMENTAIS:
 
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion07
 
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
 
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08
Documentos primaria-sesiones-unidad03-sexto grado-matematica-6g-u3-mat-sesion08
 
Divisores e múlti
Divisores e múltiDivisores e múlti
Divisores e múlti
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Adobe Experience Manager - 6th Edition by Cedric Huesler
Adobe Experience Manager - 6th Edition by Cedric HueslerAdobe Experience Manager - 6th Edition by Cedric Huesler
Adobe Experience Manager - 6th Edition by Cedric Huesler
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 

Similar to CQ5 Development Setup, Maven Build and Deployment

SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsKarol Szmaj
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinDiego Garber
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case StudyIndicThreads
 
Tech talk live alfresco add ons
Tech talk live alfresco add onsTech talk live alfresco add ons
Tech talk live alfresco add onsAlfresco Software
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"LogeekNightUkraine
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package ManagerDMC, Inc.
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Seleniumadamcarmi
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With SeleniumJodie Miners
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentEd Burns
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Mike McGarr
 
Bring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdfBring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdfLiang Yan
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1Sumanth Vepa
 
Selenium Introduction and IDE
Selenium Introduction and IDESelenium Introduction and IDE
Selenium Introduction and IDEMurageppa-QA
 

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

SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design Patterns
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
Tech talk live alfresco add ons
Tech talk live alfresco add onsTech talk live alfresco add ons
Tech talk live alfresco add ons
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Selenium
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
Bring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdfBring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdf
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
 
Agile sites @ telmore
Agile sites @ telmore Agile sites @ telmore
Agile sites @ telmore
 
Code One 2018 maven
Code One 2018   mavenCode One 2018   maven
Code One 2018 maven
 
Selenium Introduction and IDE
Selenium Introduction and IDESelenium Introduction and IDE
Selenium Introduction and IDE
 

Recently uploaded

The AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdfThe AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdfSiskaFitrianingrum
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxnatyesu
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptxJungkooksNonexistent
 
Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxabhinandnam9997
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxGal Baras
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxTristanJasperRamos
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shoplaozhuseo02
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxlaozhuseo02
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理aagad
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEHimani415946
 

Recently uploaded (12)

The AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdfThe AI Powered Organization-Intro to AI-LAN.pdf
The AI Powered Organization-Intro to AI-LAN.pdf
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
Article writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptxArticle writing on excessive use of internet.pptx
Article writing on excessive use of internet.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
一比一原版UTS毕业证悉尼科技大学毕业证成绩单如何办理
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 

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

  1. 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
  2. Talk real quick about options: Bamboo – Let someone else deal with it  Jenkins – so simple your grandma could install it
  3. Talk about STMicro w/ Toby Integrating with teams in 3 countries Value of knowing when build breaks… even at 3am
  4. 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