SlideShare a Scribd company logo
1 of 22
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

Bundling your front-end with Webpack
Bundling your front-end with WebpackBundling your front-end with Webpack
Bundling your front-end with WebpackDanillo Corvalan
 
Building and Managing Projects with Maven
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with MavenKhan625
 
Frontend Application Architecture, Patterns, and Workflows
Frontend Application Architecture, Patterns, and WorkflowsFrontend Application Architecture, Patterns, and Workflows
Frontend Application Architecture, Patterns, and WorkflowsTreasure Data, Inc.
 
Web development using nodejs
Web development using nodejsWeb development using nodejs
Web development using nodejsVaisakh Babu
 
Packing for the Web with Webpack
Packing for the Web with WebpackPacking for the Web with Webpack
Packing for the Web with WebpackThiago Temple
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
 
Frontend architecture design for large(r) team final
Frontend architecture design for large(r) team   finalFrontend architecture design for large(r) team   final
Frontend architecture design for large(r) team finalChadchapol Vittavutkarnvej
 
Nodejs - Building a RESTful API
Nodejs - Building a RESTful APINodejs - Building a RESTful API
Nodejs - Building a RESTful APISang Cù
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks ComparisonDeepu S Nath
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationDavid Amend
 
DotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + reactDotNet MVC and webpack + Babel + react
DotNet MVC and webpack + Babel + reactChen-Tien Tsai
 
002. Working with Webpack
002. Working with Webpack002. Working with Webpack
002. Working with WebpackBinh Quan Duc
 
Debugging WordPress
Debugging WordPressDebugging WordPress
Debugging WordPressMario Peshev
 

What's hot (19)

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

Viewers also liked

AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
Hubot + Slack + AEM
Hubot + Slack + AEMHubot + Slack + AEM
Hubot + Slack + AEMMax Barrass
 
User interface customization for aem6 circuit
User interface customization for aem6 circuitUser interface customization for aem6 circuit
User interface customization for aem6 circuitDamien Antipa
 
UI Customization in AEM 6.0
UI Customization in AEM 6.0UI Customization in AEM 6.0
UI Customization in AEM 6.0Gilles Knobloch
 
Simplify and Accelerate App Development with Adobe AEM Mobile
Simplify and Accelerate App Development with Adobe AEM MobileSimplify and Accelerate App Development with Adobe AEM Mobile
Simplify and Accelerate App Development with Adobe AEM MobilePerficient, Inc.
 
Adobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingAdobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingCarsten Ziegeler
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAshokkumar T A
 
AEM 6.1 User Interface Customization
AEM 6.1 User Interface CustomizationAEM 6.1 User Interface Customization
AEM 6.1 User Interface CustomizationChristian Meyer
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architectureAshokkumar T A
 
User Interface customization for AEM 6
User Interface customization for AEM 6User Interface customization for AEM 6
User Interface customization for AEM 6Damien Antipa
 
Building Quality into the AEM Publication Workflow with Active Standards by D...
Building Quality into the AEM Publication Workflow with Active Standards by D...Building Quality into the AEM Publication Workflow with Active Standards by D...
Building Quality into the AEM Publication Workflow with Active Standards by D...AEM HUB
 

Viewers also liked (12)

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

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

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

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