SlideShare a Scribd company logo
Apache Maven 2Valentin JacqueminMohammed AIT OUFKIR
AgendaDefinition and originesAnt VS MavenThe POM fileMaven pluginsMaven archetypesRepositoriesDependency ManagementLifecycleA quick demoQ&ANo. 208 September 2009Title of Presentation
No. 308 September 2009Title of PresentationDefinition and originesWhat is MavenThe Maven aimThe current version How it comes to us?Brief History The creator of Maven (Turbine)CompilationDeploymentValidationMavenSiteDependencyDocumentation
No. 408 September 2009Title of PresentationAnt VS Maven : the advantages of MavenVSVersioningmanaged by MavenMaven provides conventionsExtensibility, reusabilityBetter quality in deliveriesLess time spent
No. 508 September 2009Title of PresentationThe POMWhat is Maven POM?Anatomy of a basic POM<project><modelVersion>1.0.0</modelVersion>	  <groupId>com.mycompany.app</groupId>	  <artifactId>my-app</artifactId>	  <packaging> jar</packaging>	  <version>1.0-SNAPSHOT</version>	  <dependencies>		<dependency>    <groupId>junit</groupId>   <artifactId>junit</artifactId>   <version>3.8.1</version><scope> test</scope>		</dependency>	  </dependencies></project>Project
Maven pluginsPlugin: collection of goals with a general common purpose.No. 608 September 2009Title of PresentationSome examples:jboss-maven-plugin
javadoc
surefire (unit tests)
ejbMaven Archetypeswhat is Maven Archetype? Archetype is a plug-inA list of predefined archetypesGenerating application structure from an archetypeGeneration an archetype from an existing projectNo. 708 September 2009Title of Presentation
MavenRepositoriesNo. 808 September 2009Title of PresentationgroupId   |-- artifactId           |--- version                   |-- artifactId-version.pomLocal repositorycontainsartifactsusedso farRemoterepositoryis a global artifactswarehouse on a remote server
Dependency ManagementHow maven manage dependencies? Transitive dependency.Dependency scopeNo. 908 September 2009Title of Presentation	  <dependencies>		<dependency>		     <groupId>junit</groupId>		     <artifactId>junit</artifactId>		     <version>3.8.1</version><scope> test</scope>		</dependency>	  </dependencies>
 3 Buit-in Lifecycles

More Related Content

Maven 2 Introduction

  • 1. Apache Maven 2Valentin JacqueminMohammed AIT OUFKIR
  • 2. AgendaDefinition and originesAnt VS MavenThe POM fileMaven pluginsMaven archetypesRepositoriesDependency ManagementLifecycleA quick demoQ&ANo. 208 September 2009Title of Presentation
  • 3. No. 308 September 2009Title of PresentationDefinition and originesWhat is MavenThe Maven aimThe current version How it comes to us?Brief History The creator of Maven (Turbine)CompilationDeploymentValidationMavenSiteDependencyDocumentation
  • 4. No. 408 September 2009Title of PresentationAnt VS Maven : the advantages of MavenVSVersioningmanaged by MavenMaven provides conventionsExtensibility, reusabilityBetter quality in deliveriesLess time spent
  • 5. No. 508 September 2009Title of PresentationThe POMWhat is Maven POM?Anatomy of a basic POM<project><modelVersion>1.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging> jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version><scope> test</scope> </dependency> </dependencies></project>Project
  • 6. Maven pluginsPlugin: collection of goals with a general common purpose.No. 608 September 2009Title of PresentationSome examples:jboss-maven-plugin
  • 9. ejbMaven Archetypeswhat is Maven Archetype? Archetype is a plug-inA list of predefined archetypesGenerating application structure from an archetypeGeneration an archetype from an existing projectNo. 708 September 2009Title of Presentation
  • 10. MavenRepositoriesNo. 808 September 2009Title of PresentationgroupId |-- artifactId |--- version |-- artifactId-version.pomLocal repositorycontainsartifactsusedso farRemoterepositoryis a global artifactswarehouse on a remote server
  • 11. Dependency ManagementHow maven manage dependencies? Transitive dependency.Dependency scopeNo. 908 September 2009Title of Presentation <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version><scope> test</scope> </dependency> </dependencies>
  • 12. 3 Buit-in Lifecycles
  • 13. Several phases for each Lifecycle
  • 14. One or many plugins for each phase
  • 15. Simple Actions or Goals.No. 1008 September 2009Title of PresentationLifecyclePhase IIPhase IIDefaultPhase IPhase IIPhase IIcleanPhase IPhase IIPhase IISitePhase I
  • 16. DemoNo. 1108 September 2009Title of Presentation
  • 17. Q&ANo. 1208 September 2009Title of Presentation

Editor's Notes

  1. C’est quoi une dépendance?Une dépendance est une référence vers un artefact spécifique contenu dans un repository. Maven offre une gestion transitive de dépendance : c’est-à-dire que si vous avez besoin d’une librairie dans votre projet et que cette librairies dépends de plusieurs autres, vous n’avez qu’à indiquer le nom de cette librairie et sa version, et Maven se charge du reste.le scope définie la phase du projet ou sera disponible cette dépendance
  2. Repo local vide, afficher le repoMvnarchetype:generate#15, afficher le repoMvn testModifie POM: Ajouterunedépendance<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.0-FINAL</version> </dependency>Dans App.java:import org.apache.poi.hssf.usermodel.HSSFWorkbook;EtHSSFWorkbookwb = new HSSFWorkbook();Mvncompiler:compileAjouter un plugin (javadoc reporting)<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.5</version> </plugin> </plugins> </reporting>Mvnjavadoc:javadocGénérer site/doc: mvn siteIntégration IDE: mvneclipse:eclipse
  3. DrawbacksOur experience with ITGSS