SlideShare a Scribd company logo
1 of 19
Developing Java Applications in Agile way using SpringSource Tool Suite (STS) 2.3.2, Maven, Spring tc server Presented by : Sathish Chittibabu 	Date		: May 11th2010 	Event		: Solstice Consultants Round table discussion
Agenda  2/19 Spring Framework (Introduction) Spring 3.0 – What’s new ? (if needed)  SpringSource Tool Suite (STS) 2.3.2 Spring tcServer Maven Quick example  So what’s Agile here ?
No Spring Allergy !!! 3/19
Spring Framework Open source framework for Java development ( Spring Core, Spring MVC, Spring JDBC, Web Services etc.,) Lightweight, non-invasive container Dependency Injection or Inversion of Controller Assemble complex system from loosely coupled POJOs Reusable business and data access components not tied to J2EE services.  Spring managed applications can run in any J2EE environment, as standalone apps, test environments Lean Software Movement 4/19
Spring 3.0 – What’s new ?	 Java 5+ support Spring Expression Language REST Support Portlet 2.0 Declarative model validation Early support for Java EE6 5/19
Spring 3.0 – What’s new ?  ,[object Object]
Generics – Beanfactory returns typed bean instancesT getBean(String name, Class<T> type) Map<String, T> getBeansOfType(Class<T>, type) ,[object Object]
Configuration 3 types
XML Based (applicationContext.xml)
Annotations in the beans (@ Components)
Configuration classes (Spring Java Config Project)6/19
Spring 3.0 – What’s new ?  ,[object Object]
Java configuration class instead of XML Configuration
Everything in Java – stronger type checking
Dependencies confined to one place. No additional annotations inside the app code
Every method returns a spring managed bean@Bean @Primary @Lazy public DemoServicedemoService(){ DemoServiceImpl service = new DemoServiceImpl(); service.setDataSource(…); 	return service; } 7/19
Spring 3.0 – What’s new ?  ,[object Object]
Making custom annotations (your own stereotypes) more powerful
App code doesn’t depend on Spring Annotations instead uses Java Annotations@Service@Scope ("request") @Transactional(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService{} @MyService public class DemoService{ … } 8/19

More Related Content

What's hot

PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootJosué Neis
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkMohit Belwal
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerZeroTurnaround
 
Christophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeChristophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeSkills Matter
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConos890
 
Advanced java
Advanced java Advanced java
Advanced java NA
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New FeaturesHaim Michael
 
Spring - Part 3 - AOP
Spring - Part 3 - AOPSpring - Part 3 - AOP
Spring - Part 3 - AOPHitesh-Java
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPPawanMM
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionPawanMM
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 

What's hot (20)

PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Java Programming - 01 intro to java
Java Programming - 01 intro to javaJava Programming - 01 intro to java
Java Programming - 01 intro to java
 
Java Enterprise Edition
Java Enterprise EditionJava Enterprise Edition
Java Enterprise Edition
 
Mongo db
Mongo dbMongo db
Mongo db
 
Advance Java
Advance JavaAdvance Java
Advance Java
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
Spring 4 Web App
Spring 4 Web AppSpring 4 Web App
Spring 4 Web App
 
Spring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen HoellerSpring 4 on Java 8 by Juergen Hoeller
Spring 4 on Java 8 by Juergen Hoeller
 
Christophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java ExchangeChristophe Spring Actionscript Flex Java Exchange
Christophe Spring Actionscript Flex Java Exchange
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheCon
 
Advanced java
Advanced java Advanced java
Advanced java
 
Maven
MavenMaven
Maven
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 
Spring - Part 3 - AOP
Spring - Part 3 - AOPSpring - Part 3 - AOP
Spring - Part 3 - AOP
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOP
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Java and XPages
Java and XPagesJava and XPages
Java and XPages
 

Similar to Developing Agile Java Applications using Spring tools

Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Springifnu bima
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC SeminarJohn Lewis
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring FrameworkEdureka!
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
Modern Java Web Development
Modern Java Web DevelopmentModern Java Web Development
Modern Java Web Developmentzenyk
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts frameworks4al_com
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptxNourhanTarek23
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issuesPrashant Seth
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2javatrainingonline
 

Similar to Developing Agile Java Applications using Spring tools (20)

Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Spring Mvc,Java, Spring
Spring Mvc,Java, SpringSpring Mvc,Java, Spring
Spring Mvc,Java, Spring
 
Sprint Portlet MVC Seminar
Sprint Portlet MVC SeminarSprint Portlet MVC Seminar
Sprint Portlet MVC Seminar
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Spring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 IntegrationSpring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 Integration
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
Modern Java Web Development
Modern Java Web DevelopmentModern Java Web Development
Modern Java Web Development
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
 
Spring learning path
Spring learning pathSpring learning path
Spring learning path
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Spring 2
Spring 2Spring 2
Spring 2
 
Spring diy projects
Spring diy projectsSpring diy projects
Spring diy projects
 
Spring interview questions
Spring interview questionsSpring interview questions
Spring interview questions
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 

Recently uploaded

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Developing Agile Java Applications using Spring tools

  • 1. Developing Java Applications in Agile way using SpringSource Tool Suite (STS) 2.3.2, Maven, Spring tc server Presented by : Sathish Chittibabu Date : May 11th2010 Event : Solstice Consultants Round table discussion
  • 2. Agenda 2/19 Spring Framework (Introduction) Spring 3.0 – What’s new ? (if needed) SpringSource Tool Suite (STS) 2.3.2 Spring tcServer Maven Quick example So what’s Agile here ?
  • 3. No Spring Allergy !!! 3/19
  • 4. Spring Framework Open source framework for Java development ( Spring Core, Spring MVC, Spring JDBC, Web Services etc.,) Lightweight, non-invasive container Dependency Injection or Inversion of Controller Assemble complex system from loosely coupled POJOs Reusable business and data access components not tied to J2EE services. Spring managed applications can run in any J2EE environment, as standalone apps, test environments Lean Software Movement 4/19
  • 5. Spring 3.0 – What’s new ? Java 5+ support Spring Expression Language REST Support Portlet 2.0 Declarative model validation Early support for Java EE6 5/19
  • 6.
  • 7.
  • 10. Annotations in the beans (@ Components)
  • 11. Configuration classes (Spring Java Config Project)6/19
  • 12.
  • 13. Java configuration class instead of XML Configuration
  • 14. Everything in Java – stronger type checking
  • 15. Dependencies confined to one place. No additional annotations inside the app code
  • 16. Every method returns a spring managed bean@Bean @Primary @Lazy public DemoServicedemoService(){ DemoServiceImpl service = new DemoServiceImpl(); service.setDataSource(…); return service; } 7/19
  • 17.
  • 18. Making custom annotations (your own stereotypes) more powerful
  • 19. App code doesn’t depend on Spring Annotations instead uses Java Annotations@Service@Scope ("request") @Transactional(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService{} @MyService public class DemoService{ … } 8/19
  • 20.
  • 21. Similar to managed beans in JSF Expressions
  • 22. Implicit attributes to be exposed by default (e.g., systemProperties, systemEnviroment)
  • 23. Implicit web specific attributes are also available (e.g., contextParameters, contextAttributes, request, session)#{systemProperties.databaseName} #{myBean.myProperty} 9/19
  • 24.
  • 25. @PathVariable introduced – URI templates@Controller@RequestMapping("/hotels/{hotel}") --- optional public class HotelsController{ @RequestMapping-- matches /hotels/42 public void handleHotel(@PathVariable("hotel") String hotel) { //... } @RequestMapping("bookings/{booking}") -- matches /hotels/42/bookings/21 public void handleBooking(@PathVariable("hotel") String hotel, @PathVariableint booking){ // ... } } 10/19
  • 26.
  • 34. RestTemplate (very similar to jdbcTemplate)11/19
  • 35.
  • 36. JSR 303 – “Bean Validation” through annotation
  • 37. Validation in any layerpublic class DemoBean { @NotNull @Past private Date someDate; } 12/19
  • 38. SpringSource Tool Suite (STS) 2.3.2 Eclipse-powered Java Integrated development environment (IDE) for building spring-powered enterprise applications Includes tools for all of the latest Enterprise Java and Spring based technologies Supports application targeting local, virtual and cloud based servers In built support for SpringSourcedmServer and SpringSourcetcServer Also available as Eclipse plugin 13/19
  • 39. Spring tcServer Enterprise version of Apache Tomcat Spring and Apache Tomcat – KISSing cousins Lightweight App Server suited for usage in modern virtual or Cloud environments Small foot print, lean approach requires significantly less computing resources Available in Spring edition, Standard edition and Developer edition Developer edition is integrated with STS Spring insight – analytical and advanced diagnostic tool for real time insight into performance (metrics) and behavior of Spring applications 14/19
  • 40. Maven Project Management and comprehension tool to manage Builds, Documentation, Reporting, Dependencies, SCMs, Releases, Distribution Ant is procedural while Maven is Object Oriented Employs standard conventions and practices to accelerate development cycle Concept of Central Repository – share 3rd party and open source libraries across projects (intranet as well internet) Continuous Integration – automated build, release, tests etc., In words of Jason van Zyl "the intent of Maven is to make intra-project development highly manageable in the hopes of providing more time for cross-project development. You might call it cross-project pollination or the sharing of project development knowledge; this is what Maven attempts to encourage". 15/19
  • 41. Maven – Pom.xml POM (Project Object Model) – XML representation of maven project Declarative manifestation of “who” , “what” and “where”, while the build lifecycle is the “when” and “how” Maven solves Dependency Management issues “jarmageddon” and “jar Hell” thru common local repository from which to link projects correctly 16/19
  • 42. Maven- Standard Layout for Projects Java sources go under ${basedir}/src/main/java Web stuff go under ${basedir}/src/main/webapp Test sources go under ${basedir}/src/test/java Compiled classes go under ${basedir}/target/classes where ${basedir} represents the directory containing pom.xml Maven local repository –~/.m2/repository 17/19
  • 43. So What’s Agile here ? Don’t have to worry about build infrastructure – boiler plate Don’t have to scratch your head on the different version of libraries Don’t have to spend time on App server setup on your dev environment Can develop “Runtime Environment Agnostic” Java code Development is quick - Hot deployment on tcServer Develop lean software – easy to support & maintain And now you can actually concentrate on building application code 18/19
  • 44. Q & A 19/19