M a ven

40
M M a a ven ven prepared by prepared by hasan.we4tech.com hasan.we4tech.com

description

M a ven. prepared by hasan.we4tech.com. What is maven?. Java based project management tool. Automated software build management tool. Repository centric dependent library resolution. Project status reporting tool Project documenting tool Product release management tool - PowerPoint PPT Presentation

Transcript of M a ven

Page 1: M a ven

MMaavenvenprepared by prepared by hasan.we4tech.comhasan.we4tech.com

Page 2: M a ven

What is maven?What is maven?

Page 3: M a ven

• Java based project management tool.Java based project management tool.• Automated software build management tool.Automated software build management tool.• Repository centric dependent library resolution.Repository centric dependent library resolution.• Project status reporting toolProject status reporting tool• Project documenting toolProject documenting tool• Product release management toolProduct release management tool• Configuration management supporting toolConfiguration management supporting tool

Page 4: M a ven

Why is maven?

Page 5: M a ven

• Java based project management.• Project document management.• Project status report management.• Project goal wise module separation tool.• Company wide snapshot or release repository • Better product and module centric approach. • Easy to use

Page 6: M a ven

Typical project iteration

Page 7: M a ven
Page 8: M a ven

Where is maven?

Page 9: M a ven
Page 10: M a ven

How can maven helps on development?

Page 11: M a ven

• Making build process much easier.

• Dependency management

• Centralizing module dependency.

• Maintaining a standard project layout.

• Generating report on broken code, broken coding convention, unit test code coverage etc…

Page 12: M a ven

Dependency management!

Page 13: M a ven
Page 14: M a ven

Centralizing module dependency!!

Page 15: M a ven
Page 16: M a ven

Standard project layout!!

Page 17: M a ven
Page 18: M a ven

What is maven repository?

Page 19: M a ven

Build a sample project

Page 20: M a ven

Mavenized terms

Page 21: M a ven

• What is POM (Project Object Model)?

• What is artifact?

• What is group?

• What is archetype?

• What is goal?

• What is dependency?

Page 22: M a ven

POM

Page 23: M a ven

Goal• mvn package

• mvn compile

• mvn clean

• mvn test

• mvn javadoc:javadoc

• mvn site

• …

Page 24: M a ven

Dependency

<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>

Page 25: M a ven

Maven phases

Page 26: M a ven

• validate

• generate-sources

• process-sources

• generate-resources

• process-resources

• compile

Page 27: M a ven

Typical goals and usages

Page 28: M a ven

• Create parent project POM file.

• Create a new maven project

• Create a web application module

• Generate intelliJ IDEA project files

• Packaging whole project

Page 29: M a ven

Create parent project POM file.<?xml version="1.0" encoding="UTF-8"?><project> <modelVersion>4.0.0</modelVersion><groupId>com.company.project</groupId> <artifactId>project-parent</artifactId><packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>project name</name> <modules> <!--module>project-core</module--> </modules> <!-- somewhere in repository --> <repositories> <repository> <id>somewherein</id> <url>http://maven.somewherein.net/</url> </repository> </repositories> <dependencies> <dependency> <artifactId>xom</artifactId> <groupId>xom</groupId> <version>1.1</version> </dependency> </dependencies></project>

Page 30: M a ven

Create a new maven project

mvn archetype:create \

–DgroupId=com.company.project \

–DartifactId=project-core

Page 31: M a ven

Create a new web application module

mvn archetype:create \

–DgroupId=com.company.project \

–DartifactId=project-core \

–DarchetypeArtifactId=maven-archetype-webapp

Page 32: M a ven

Generate intelliJ IDEA or eclipse project files

mvn idea:idea

Or

mvn eclipse:eclipse

Page 33: M a ven

Packaging whole project

mvn install

Or

mvn package

Page 34: M a ven

Configure somewhere repository

• Go to maven_home/conf/settings.xml

• Set the following line –

• <localRepository>\\192.168.1.254\software\24_maven_repository</localRepository>

Page 35: M a ven

How to find artifact?

• Search google – i.e : maven xom• Manually browse public repository

– http://ibiblio.org/maven/– http://repo1.maven.org/maven2/– http://maven.somewherein.net – [directory indexing is not enabled]

Page 36: M a ven

How to use somewhere in Continuous build server?

Page 37: M a ven

Changes on your pom file.<ciManagement> <system>continuum</system> <notifiers> <notifier> <type>mail</type> <configuration> <address>[email protected]</address> </configuration> </notifier> </notifiers></ciManagement><scm> <connection>svn://host/os/project/trunk/</connection><developerConnection>svn://somewhereindhaka.net/os/ideabase/idea_content_repo/trunk/

development</developerConnection> <tag>HEAD</tag> <url>http://somewhereindhaka.net/os/ideabase/idea_content_repo/trunk/development</url></scm>

Page 38: M a ven

• Go to (ask me for url) continuum server url

• Login using user and password (ask me if you need user and password)

• Select “maven 2.0+ project” from right side menu.

• Give your maven pom file url from. i.e – http://host/svn/project/pom.xml

Page 39: M a ven

That’s all :D

Page 40: M a ven

Thank you every one and those who brought such a nice tool