SlideShare a Scribd company logo
Apache build projects
A practical session on Apache Maven, Ant and Subversion


          By. S. Suhothayan & Prabath Abaysekara
Subversion (SVN)
   If more than one developer is working on a
    project - how can they all make changes to the
    source code...?
Why version control?
   This gives us a history of a software project
   If we accidentally delete some code, we can look for an
    older version that still has the code
   We can see who made what changes
   Serves as a backup
Terminology
   Repository: a storage location for projects that
    SVN will manage
   Checkout: to download a copy of a project from
    a repository
   Commit: to upload files to a repository after
    making changes
   Update: to download the latest versions of files
    from a repository when your local copies are out
    of date
How its done…

   More than one developer is working on a
   project...




                                              from: OpenMRS
How its done…
   more than one developer to works on the same revision
    file... and trying to commit at the same time!




                                                     from: OpenMRS
How its done…
   What if the changes are on the same line !!!




                                                   from: OpenMRS
from: OpenMRS
Ant
   A software tool for automating software build processes
   Similar to MAKE, but:
       Written in and developed primarily for Java
       Uses XML scripts
How Ant build files written?
   Build-scripts are created from existing Ant-tasks.
   The Ant tasks do not prescribe any conventions or
    configuration.
   Therefore the definition of project layout is your
    responsibility.

   Advantage
       You have full control of whatever you are doing

   Disadvantage
       Can become a problem in bigger projects.
How to run Ant ?
   Can be run from the command line

   By default the command line client looks for a build script
    build.xml in the current directory
       > ant

   To use a different build script, we have to specify it
       > ant -buildfile other.xml
Targets
   Build scripts contain targets, the different jobs that they
    can performed

   We can specify the name of the target to run the specific
    target .
         > ant compile

   Note: If nothing specified will run the default target
Maven
   A software project management and comprehension
    tool.
What it Maven?

   Maven = “Ant With Convention Over Configuration“

   Directories
       Source, Tests, Resources
   Goals
       Clean, Test, Deploy, Package, Install, Site...


   But... you have to learn the conventions!
Maven Lifecycle
   validate
      Validate the project is correct and all necessary information is available
   compile
      Compile the source code of the project
   test
      Test the compiled source code using a suitable unit testing framework.
   package
      Take the compiled code and package it in its distributable format, such as a JAR.
   verify
      Run any checks to verify the package is valid and meets quality criteria
   install
      Install the package into the local repository, for use as a dependency in other
      projects locally
   deploy
      Done in an integration or release environment, copies the final package to the
      remote repository for sharing with other developers and projects.
Create a project
   With the archetype

    mvn archetype:generate 
      -DarchetypeGroupId=org.apache.maven.archetypes 
      -DgroupId=org.apache.meetup 
      -DartifactId=calcualtor-app
Dependencies
   Dependencies are uniquely identified by their
       Group
       Artifact
       Version


   Declare dependencies in the POM and the Maven will find
    it for you!
Dependency management
   The real strength!

   You only have to declare the dependencies –
       maven will download them
       setup the classpath and
       even deploy the dependencies with your application.


   Maven manages not only the direct dependencies - but
    even the dependencies of the dependecies (transitive
    dependencies)
Maven
Repositories
 Repositories   are used to host dependencies
1. Remote
 The servers that hold released binaries
 e.g. Artifactory, Nexus
2.Local
 ~/.m2/repository
Maven
Plugins
   Reporting
   Test Coverage (Sonar)
   Javadoc auto-generation
   CheckStyle
   FindBugs
   Ant
Releasing your project
   Single command to deploy
       Pushing artifact to server


   (Almost) Single Command To Release your project!
    mvn release:prepare release:perform
Demo
Q&A
Thank You
Ad

More Related Content

What's hot (20)

Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
Max Klymyshyn
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
Mamun Rashid, CCDH
 
Graphql usage
Graphql usageGraphql usage
Graphql usage
Valentin Buryakov
 
Java build tools
Java build toolsJava build tools
Java build tools
Sujit Kumar
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
Miro Cupak
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
Ankur Goyal
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure Testing
Ranjib Dey
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Selenium
adamcarmi
 
Jenkins
JenkinsJenkins
Jenkins
Roger Xia
 
Setup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CISetup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CI
walming
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
Robert Reiz
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
Michael Peacock
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
Shreeniwas Iyer
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
RomSoft SRL
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
Cliffano Subagio
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
Knoldus Inc.
 
Appium & Robot Framework
Appium & Robot FrameworkAppium & Robot Framework
Appium & Robot Framework
Furkan Ertürk
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Alex Balhatchet
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
VladLica
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
Max Klymyshyn
 
Java build tools
Java build toolsJava build tools
Java build tools
Sujit Kumar
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
Miro Cupak
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
Ankur Goyal
 
Automated Infrastructure Testing
Automated Infrastructure TestingAutomated Infrastructure Testing
Automated Infrastructure Testing
Ranjib Dey
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Selenium
adamcarmi
 
Setup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CISetup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CI
walming
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
Robert Reiz
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
Michael Peacock
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
Shreeniwas Iyer
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
RomSoft SRL
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
Cliffano Subagio
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
Knoldus Inc.
 
Appium & Robot Framework
Appium & Robot FrameworkAppium & Robot Framework
Appium & Robot Framework
Furkan Ertürk
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Alex Balhatchet
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
VladLica
 

Viewers also liked (20)

Apache Ant
Apache AntApache Ant
Apache Ant
Ali Bahu
 
ANT
ANTANT
ANT
guestd845f0
 
Apache Ant
Apache AntApache Ant
Apache Ant
hussulinux
 
Introduction to Apache Ant
Introduction to Apache AntIntroduction to Apache Ant
Introduction to Apache Ant
Muhammad Hafiz Hasan
 
Apache ANT vs Apache Maven
Apache ANT vs Apache MavenApache ANT vs Apache Maven
Apache ANT vs Apache Maven
Mudit Gupta
 
Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and Ant
David Noble
 
Apache ant
Apache antApache ant
Apache ant
Yuriy Galavay
 
Apache Ant
Apache AntApache Ant
Apache Ant
teejug
 
Apache ant
Apache antApache ant
Apache ant
koniik
 
Apache Ant
Apache AntApache Ant
Apache Ant
Vinod Kumar V H
 
Introduction to Apache Ant
Introduction to Apache AntIntroduction to Apache Ant
Introduction to Apache Ant
Shih-Hsiang Lin
 
Apache Ant
Apache AntApache Ant
Apache Ant
Ali Bahu
 
Tomcat tutorail
Tomcat tutorailTomcat tutorail
Tomcat tutorail
Supratim Ray
 
Java build tool_comparison
Java build tool_comparisonJava build tool_comparison
Java build tool_comparison
Manav Prasad
 
Releasing Projects Using Maven
Releasing Projects Using MavenReleasing Projects Using Maven
Releasing Projects Using Maven
Maria Odea Ching-Mallete
 
Ant - Another Neat Tool
Ant - Another Neat ToolAnt - Another Neat Tool
Ant - Another Neat Tool
Kanika2885
 
Building java projects with maven
Building java projects with mavenBuilding java projects with maven
Building java projects with maven
Juan Carlos Pérez Pardo
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
Ching Yi Chan
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
Eueung Mulyana
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
Walid Ashraf
 
Ad

Similar to Manen Ant SVN (20)

Maven
MavenMaven
Maven
darshanvartak
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
Angel Ruiz
 
Apache maven, a software project management tool
Apache maven, a software project management toolApache maven, a software project management tool
Apache maven, a software project management tool
Renato Primavera
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
Ankit Gubrani
 
Maven basics
Maven basicsMaven basics
Maven basics
Vijay Krishnan Ramaswamy
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
Steve Keener
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
Dan Hinojosa
 
Maven
MavenMaven
Maven
Harshit Choudhary
 
Mavennotes.pdf
Mavennotes.pdfMavennotes.pdf
Mavennotes.pdf
AnkurSingh656748
 
Introduction to maven
Introduction to mavenIntroduction to maven
Introduction to maven
Manos Georgopoulos
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
Holasz Kati
 
A-Z_Maven.pdf
A-Z_Maven.pdfA-Z_Maven.pdf
A-Z_Maven.pdf
Mithilesh Singh
 
Maven
MavenMaven
Maven
Emprovise
 
Maven
MavenMaven
Maven
Nishant Arora
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
Luismi Amorós Martínez
 
Maven in mulesoft
Maven in mulesoftMaven in mulesoft
Maven in mulesoft
venkata20k
 
Exploring Maven SVN GIT
Exploring Maven SVN GITExploring Maven SVN GIT
Exploring Maven SVN GIT
People Strategists
 
Introduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS worldIntroduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS world
Dmitry Bakaleinik
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
MD Sayem Ahmed
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
Angel Ruiz
 
Apache maven, a software project management tool
Apache maven, a software project management toolApache maven, a software project management tool
Apache maven, a software project management tool
Renato Primavera
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
Ankit Gubrani
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
Steve Keener
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
Dan Hinojosa
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
Holasz Kati
 
Maven in mulesoft
Maven in mulesoftMaven in mulesoft
Maven in mulesoft
venkata20k
 
Introduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS worldIntroduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS world
Dmitry Bakaleinik
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
MD Sayem Ahmed
 
Ad

More from Sriskandarajah Suhothayan (12)

Patterns for Deploying Analytics in the Real World
Patterns for Deploying Analytics in the Real WorldPatterns for Deploying Analytics in the Real World
Patterns for Deploying Analytics in the Real World
Sriskandarajah Suhothayan
 
WSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needsWSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needs
Sriskandarajah Suhothayan
 
Sensing the world with Data of Things
Sensing the world with Data of ThingsSensing the world with Data of Things
Sensing the world with Data of Things
Sriskandarajah Suhothayan
 
Sensing the world with data of things
Sensing the world with  data of thingsSensing the world with  data of things
Sensing the world with data of things
Sriskandarajah Suhothayan
 
WSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needsWSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needs
Sriskandarajah Suhothayan
 
An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform   An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform
Sriskandarajah Suhothayan
 
DEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
DEBS 2015 Tutorial : Patterns for Realtime Streaming AnalyticsDEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
DEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
Sriskandarajah Suhothayan
 
Scalable Event Processing with WSO2CEP @ WSO2Con2015eu
Scalable Event Processing with WSO2CEP @  WSO2Con2015euScalable Event Processing with WSO2CEP @  WSO2Con2015eu
Scalable Event Processing with WSO2CEP @ WSO2Con2015eu
Sriskandarajah Suhothayan
 
Make it fast for everyone - performance and middleware design
Make it fast for everyone - performance and middleware designMake it fast for everyone - performance and middleware design
Make it fast for everyone - performance and middleware design
Sriskandarajah Suhothayan
 
Gather those events : Instrumenting everything for analysis
Gather those events : Instrumenting everything for analysisGather those events : Instrumenting everything for analysis
Gather those events : Instrumenting everything for analysis
Sriskandarajah Suhothayan
 
Intelligent integration with WSO2 ESB & WSO2 CEP
Intelligent integration with WSO2 ESB & WSO2 CEP Intelligent integration with WSO2 ESB & WSO2 CEP
Intelligent integration with WSO2 ESB & WSO2 CEP
Sriskandarajah Suhothayan
 
WSO2 Complex Event Processor
WSO2 Complex Event ProcessorWSO2 Complex Event Processor
WSO2 Complex Event Processor
Sriskandarajah Suhothayan
 
Patterns for Deploying Analytics in the Real World
Patterns for Deploying Analytics in the Real WorldPatterns for Deploying Analytics in the Real World
Patterns for Deploying Analytics in the Real World
Sriskandarajah Suhothayan
 
WSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needsWSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needs
Sriskandarajah Suhothayan
 
WSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needsWSO2 Analytics Platform: The one stop shop for all your data needs
WSO2 Analytics Platform: The one stop shop for all your data needs
Sriskandarajah Suhothayan
 
An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform   An introduction to the WSO2 Analytics Platform
An introduction to the WSO2 Analytics Platform
Sriskandarajah Suhothayan
 
DEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
DEBS 2015 Tutorial : Patterns for Realtime Streaming AnalyticsDEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
DEBS 2015 Tutorial : Patterns for Realtime Streaming Analytics
Sriskandarajah Suhothayan
 
Scalable Event Processing with WSO2CEP @ WSO2Con2015eu
Scalable Event Processing with WSO2CEP @  WSO2Con2015euScalable Event Processing with WSO2CEP @  WSO2Con2015eu
Scalable Event Processing with WSO2CEP @ WSO2Con2015eu
Sriskandarajah Suhothayan
 
Make it fast for everyone - performance and middleware design
Make it fast for everyone - performance and middleware designMake it fast for everyone - performance and middleware design
Make it fast for everyone - performance and middleware design
Sriskandarajah Suhothayan
 
Gather those events : Instrumenting everything for analysis
Gather those events : Instrumenting everything for analysisGather those events : Instrumenting everything for analysis
Gather those events : Instrumenting everything for analysis
Sriskandarajah Suhothayan
 
Intelligent integration with WSO2 ESB & WSO2 CEP
Intelligent integration with WSO2 ESB & WSO2 CEP Intelligent integration with WSO2 ESB & WSO2 CEP
Intelligent integration with WSO2 ESB & WSO2 CEP
Sriskandarajah Suhothayan
 

Recently uploaded (20)

TriStar Gold Corporate Presentation May 2025
TriStar Gold Corporate Presentation May 2025TriStar Gold Corporate Presentation May 2025
TriStar Gold Corporate Presentation May 2025
Adnet Communications
 
Top Dividend Paying Stocks in India 2025
Top Dividend Paying Stocks in India 2025Top Dividend Paying Stocks in India 2025
Top Dividend Paying Stocks in India 2025
Amit Finowings
 
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdfDefined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Henry Tapper
 
Hormones (mid terms) by yhbybhnybhunudr rida.pptx
Hormones (mid terms) by yhbybhnybhunudr rida.pptxHormones (mid terms) by yhbybhnybhunudr rida.pptx
Hormones (mid terms) by yhbybhnybhunudr rida.pptx
yousafmuzammil19
 
WAND.pdfvq d ix and8dba d8nd qnd8duf es qid
WAND.pdfvq d ix and8dba d8nd qnd8duf es qidWAND.pdfvq d ix and8dba d8nd qnd8duf es qid
WAND.pdfvq d ix and8dba d8nd qnd8duf es qid
jeremysegundob
 
Rural Livelihood.pptx Rural Development
Rural Livelihood.pptx  Rural DevelopmentRural Livelihood.pptx  Rural Development
Rural Livelihood.pptx Rural Development
Dr. Ravindra Pastor
 
Money Matters_ Transforming Your Financial Relationship.pdf
Money Matters_ Transforming Your Financial Relationship.pdfMoney Matters_ Transforming Your Financial Relationship.pdf
Money Matters_ Transforming Your Financial Relationship.pdf
pckhetal
 
Understanding Cryptocurrency Guide For Beginners (2025).pdf
Understanding Cryptocurrency Guide For Beginners (2025).pdfUnderstanding Cryptocurrency Guide For Beginners (2025).pdf
Understanding Cryptocurrency Guide For Beginners (2025).pdf
SERP Navigator
 
M&A and corporate Restructuring strategy.pdf
M&A and corporate Restructuring strategy.pdfM&A and corporate Restructuring strategy.pdf
M&A and corporate Restructuring strategy.pdf
benjamin77330preteux
 
Brown and Black Modern Watercolor Presentation.pptx
Brown and Black Modern Watercolor Presentation.pptxBrown and Black Modern Watercolor Presentation.pptx
Brown and Black Modern Watercolor Presentation.pptx
johncolumnago
 
WPC Defined Benefit Pensions 24-5.pdf HT
WPC Defined Benefit  Pensions 24-5.pdf HTWPC Defined Benefit  Pensions 24-5.pdf HT
WPC Defined Benefit Pensions 24-5.pdf HT
Henry Tapper
 
DRAFT Internal presentation - Accessibility Act v2.pptx
DRAFT Internal presentation - Accessibility Act v2.pptxDRAFT Internal presentation - Accessibility Act v2.pptx
DRAFT Internal presentation - Accessibility Act v2.pptx
FinTech Belgium
 
Consolidated accounting notes presentation
Consolidated accounting notes presentationConsolidated accounting notes presentation
Consolidated accounting notes presentation
ashforddube14
 
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Harsh Mishra
 
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjsDOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
opppppppooooo5
 
Abhay Bhutada Building Success with Vision and Responsibility
Abhay Bhutada Building Success with Vision and ResponsibilityAbhay Bhutada Building Success with Vision and Responsibility
Abhay Bhutada Building Success with Vision and Responsibility
Harsh Mishra
 
Endodontic CC 67890-98765e43567897652.pptx
Endodontic CC 67890-98765e43567897652.pptxEndodontic CC 67890-98765e43567897652.pptx
Endodontic CC 67890-98765e43567897652.pptx
KhalidLafi2
 
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdfTechnical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Henry Tapper
 
Decoding What Project Financial Management Is.pdf
Decoding What Project Financial Management Is.pdfDecoding What Project Financial Management Is.pdf
Decoding What Project Financial Management Is.pdf
Enterprise Wired
 
Trusted Forex Broker Reviews for Smarter Trading
Trusted Forex Broker Reviews for Smarter TradingTrusted Forex Broker Reviews for Smarter Trading
Trusted Forex Broker Reviews for Smarter Trading
Broker Reviewfx
 
TriStar Gold Corporate Presentation May 2025
TriStar Gold Corporate Presentation May 2025TriStar Gold Corporate Presentation May 2025
TriStar Gold Corporate Presentation May 2025
Adnet Communications
 
Top Dividend Paying Stocks in India 2025
Top Dividend Paying Stocks in India 2025Top Dividend Paying Stocks in India 2025
Top Dividend Paying Stocks in India 2025
Amit Finowings
 
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdfDefined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Defined Benefit Pension Schemes - Regulators Opportunity (1).pdf
Henry Tapper
 
Hormones (mid terms) by yhbybhnybhunudr rida.pptx
Hormones (mid terms) by yhbybhnybhunudr rida.pptxHormones (mid terms) by yhbybhnybhunudr rida.pptx
Hormones (mid terms) by yhbybhnybhunudr rida.pptx
yousafmuzammil19
 
WAND.pdfvq d ix and8dba d8nd qnd8duf es qid
WAND.pdfvq d ix and8dba d8nd qnd8duf es qidWAND.pdfvq d ix and8dba d8nd qnd8duf es qid
WAND.pdfvq d ix and8dba d8nd qnd8duf es qid
jeremysegundob
 
Rural Livelihood.pptx Rural Development
Rural Livelihood.pptx  Rural DevelopmentRural Livelihood.pptx  Rural Development
Rural Livelihood.pptx Rural Development
Dr. Ravindra Pastor
 
Money Matters_ Transforming Your Financial Relationship.pdf
Money Matters_ Transforming Your Financial Relationship.pdfMoney Matters_ Transforming Your Financial Relationship.pdf
Money Matters_ Transforming Your Financial Relationship.pdf
pckhetal
 
Understanding Cryptocurrency Guide For Beginners (2025).pdf
Understanding Cryptocurrency Guide For Beginners (2025).pdfUnderstanding Cryptocurrency Guide For Beginners (2025).pdf
Understanding Cryptocurrency Guide For Beginners (2025).pdf
SERP Navigator
 
M&A and corporate Restructuring strategy.pdf
M&A and corporate Restructuring strategy.pdfM&A and corporate Restructuring strategy.pdf
M&A and corporate Restructuring strategy.pdf
benjamin77330preteux
 
Brown and Black Modern Watercolor Presentation.pptx
Brown and Black Modern Watercolor Presentation.pptxBrown and Black Modern Watercolor Presentation.pptx
Brown and Black Modern Watercolor Presentation.pptx
johncolumnago
 
WPC Defined Benefit Pensions 24-5.pdf HT
WPC Defined Benefit  Pensions 24-5.pdf HTWPC Defined Benefit  Pensions 24-5.pdf HT
WPC Defined Benefit Pensions 24-5.pdf HT
Henry Tapper
 
DRAFT Internal presentation - Accessibility Act v2.pptx
DRAFT Internal presentation - Accessibility Act v2.pptxDRAFT Internal presentation - Accessibility Act v2.pptx
DRAFT Internal presentation - Accessibility Act v2.pptx
FinTech Belgium
 
Consolidated accounting notes presentation
Consolidated accounting notes presentationConsolidated accounting notes presentation
Consolidated accounting notes presentation
ashforddube14
 
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Understanding Abhay Bhutada's Salary Milestone and His Commitment to Social P...
Harsh Mishra
 
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjsDOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
DOC-20250502-WA0001..pdfjejsjjsjsjsjsjsjjsjs
opppppppooooo5
 
Abhay Bhutada Building Success with Vision and Responsibility
Abhay Bhutada Building Success with Vision and ResponsibilityAbhay Bhutada Building Success with Vision and Responsibility
Abhay Bhutada Building Success with Vision and Responsibility
Harsh Mishra
 
Endodontic CC 67890-98765e43567897652.pptx
Endodontic CC 67890-98765e43567897652.pptxEndodontic CC 67890-98765e43567897652.pptx
Endodontic CC 67890-98765e43567897652.pptx
KhalidLafi2
 
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdfTechnical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Technical_Actuarial_Standard_300_-_Pensions_-_Version_2.0 (2).pdf
Henry Tapper
 
Decoding What Project Financial Management Is.pdf
Decoding What Project Financial Management Is.pdfDecoding What Project Financial Management Is.pdf
Decoding What Project Financial Management Is.pdf
Enterprise Wired
 
Trusted Forex Broker Reviews for Smarter Trading
Trusted Forex Broker Reviews for Smarter TradingTrusted Forex Broker Reviews for Smarter Trading
Trusted Forex Broker Reviews for Smarter Trading
Broker Reviewfx
 

Manen Ant SVN

  • 1. Apache build projects A practical session on Apache Maven, Ant and Subversion By. S. Suhothayan & Prabath Abaysekara
  • 2. Subversion (SVN)  If more than one developer is working on a project - how can they all make changes to the source code...?
  • 3. Why version control?  This gives us a history of a software project  If we accidentally delete some code, we can look for an older version that still has the code  We can see who made what changes  Serves as a backup
  • 4. Terminology  Repository: a storage location for projects that SVN will manage  Checkout: to download a copy of a project from a repository  Commit: to upload files to a repository after making changes  Update: to download the latest versions of files from a repository when your local copies are out of date
  • 5. How its done…  More than one developer is working on a  project... from: OpenMRS
  • 6. How its done…  more than one developer to works on the same revision file... and trying to commit at the same time! from: OpenMRS
  • 7. How its done…  What if the changes are on the same line !!! from: OpenMRS
  • 9. Ant  A software tool for automating software build processes  Similar to MAKE, but:  Written in and developed primarily for Java  Uses XML scripts
  • 10. How Ant build files written?  Build-scripts are created from existing Ant-tasks.  The Ant tasks do not prescribe any conventions or configuration.  Therefore the definition of project layout is your responsibility.  Advantage  You have full control of whatever you are doing  Disadvantage  Can become a problem in bigger projects.
  • 11. How to run Ant ?  Can be run from the command line  By default the command line client looks for a build script build.xml in the current directory > ant  To use a different build script, we have to specify it > ant -buildfile other.xml
  • 12. Targets  Build scripts contain targets, the different jobs that they can performed  We can specify the name of the target to run the specific target . > ant compile  Note: If nothing specified will run the default target
  • 13. Maven  A software project management and comprehension tool.
  • 14. What it Maven?  Maven = “Ant With Convention Over Configuration“  Directories  Source, Tests, Resources  Goals  Clean, Test, Deploy, Package, Install, Site...  But... you have to learn the conventions!
  • 15. Maven Lifecycle  validate Validate the project is correct and all necessary information is available  compile Compile the source code of the project  test Test the compiled source code using a suitable unit testing framework.  package Take the compiled code and package it in its distributable format, such as a JAR.  verify Run any checks to verify the package is valid and meets quality criteria  install Install the package into the local repository, for use as a dependency in other projects locally  deploy Done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
  • 16. Create a project  With the archetype mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.apache.meetup -DartifactId=calcualtor-app
  • 17. Dependencies  Dependencies are uniquely identified by their  Group  Artifact  Version  Declare dependencies in the POM and the Maven will find it for you!
  • 18. Dependency management  The real strength!  You only have to declare the dependencies –  maven will download them  setup the classpath and  even deploy the dependencies with your application.  Maven manages not only the direct dependencies - but even the dependencies of the dependecies (transitive dependencies)
  • 19. Maven Repositories  Repositories are used to host dependencies 1. Remote The servers that hold released binaries e.g. Artifactory, Nexus 2.Local ~/.m2/repository
  • 20. Maven Plugins  Reporting  Test Coverage (Sonar)  Javadoc auto-generation  CheckStyle  FindBugs  Ant
  • 21. Releasing your project  Single command to deploy  Pushing artifact to server  (Almost) Single Command To Release your project! mvn release:prepare release:perform
  • 22. Demo
  • 23. Q&A