Download presentation
Presentation is loading. Please wait.
Published byJacob Hutchison Modified over 11 years ago
1
Vincent Massol, 1 st December 2006 Quality with Maven2
2
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
3
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
4
Active quality = before the fact
5
Passive quality = after the fact
6
Active and Passive quality checks are both required… … but moving to active is the direction to take
7
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
8
Surefire JUnit and TestNG PMD Checkstyle Verifier Clover Changelog Changes In MavenIn MojoIn Mojo Sandbox Quality-related plugins Cargo Jetty QALab Clirr Cobertura Jalopy JDepend JavaNCSS JDiff Selenium JBoss DBUnit Jardiff JCoverage FindBugs Simian Emma Fit Tomcat WebLogic Elsewhere
9
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
10
Local Maven Repo Build Tools Module Module to be checked build-tools.jar Depends on build-tools.jar Coding conventions with Checkstyle
12
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
13
Binary compatibility with Clirr Automatically compares previous version API with current sources To try it quickly: mvn clirr:check Can generate reports too: Strategy: Exclude files that have voluntary violations
14
Binary compatibility with Clirr
15
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
16
Automated functional tests with Cargo Cargo: A Java API to manipulate containers (install, configure, start, stop, deploy) Cargo Has extensions for Ant, Maven1, Maven2, IntelliJ IDEA*, Netbeans* Currently support J2EE containers Tomcat, Orion, Resin, Jetty, WebLogic, OC4J, Geronimo, Jboss, jo! Upcoming: Glassfish, WebSphere Upcoming: database support
17
Automated functional tests with Cargo Install distribution Configure container Deploy Start container Run tests Stop container Install from URL Ex: http://www.caucho.com/download/resin-3.0.19.zip Either created by Cargo or use an existing configuration Deploy WAR, EAR, EJBs, etc Use any tool: JUnit, TestNG, Selenium, etc Its also possible to deploy to an already started container
18
Automated functional tests with Cargo Demo!
19
Full build automation Library builds Generate JARs Components builds Generate WARs, EARs, etc Databases build Generate databases with schema and data loaded (output is typically ZIP files) Containers build Generate fully configured containers with deployed components (output is typically ZIP files) Applications build Generate fully working applications (includes both containers and databases build outputs) Unit tests Functional tests Integration tests
20
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
21
Test coverage with Clover Module 1 Module 2 Module 3 Depends on Local Repository module1-clover.jar module2-clover.jar module3-clover.jar Build Dependency Depends on Build
22
Test coverage with Clover ReportingVerification Demo!
23
Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)
24
Project documentation with a wiki Pros Easier participation and collaboration of everyone Even non-committers Always published WYSIWYG Dynamic pages Get code snippets from SVN Mini-Applications like on the fly charts for development metrics, etc Cons Versioned separately from the sources More complex to package Difficult to send patches/diffs Cannot work offline
25
XWiki demo
26
Me Questions
27
Example: http://www.bestventes.com
28
Example: http://www.curriki.org
29
Example: http://www.capdigital.com
30
Example: http://www.agrospheres.eu
31
Example: http://new.uaic.ro
32
Example: http://wiki.bonita.objectweb.org/
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.