Maven Basic
It is a build tool which is used for
building all the process which are carried out during the deployment of a
software project.
Following are the list of process which are happening
during the building process.
- Setting jar file on class-path for compilation
- Creating deployment directory structure for web application or enterprise application
- Pasting required jar file in lib folder.
- creating war or jar or pom file
- Starting a server.
Apart from this some more operation we can achieve are
- Documentation
- Reporting (creating report)
- Dependencies (providing dependency between multiple module )
- SCMs(connecting version control system like svn)
- Releases
Procedure to install and configure maven in windows
Prerequisite s/w
- JDK 1.6
- Maven 2.2.1
- Windows 7/xp
setting the classpath environment variable
Go th computer->right click->properties->advanced system settings->Environment variable->System properties.
Here u have to create one maven variable.
variable name- M2_HOME
value-location of maven home directory like D:\software\java software\apache-maven-2.2.1.
Linking the maven home directory to jdk
create path environment variable and give the maven home directory bin location to path variable as a value.
if u have existing path variable then just add the the maven directory bin folder location to path variable separated by semicolon between multiple path location value.
like
variable name-PATH
value- D:\software\java software\apache-maven-2.2.1\bin
checking for maven installation and configuration.
open command prompt. type mvn -version and a screen will come for successful configuration and integration with jdk with version like......
Repository
Repository in maven is a store place for all jar file which are required for deployment of a application module.
maven has a by default repository called m2 folder under which a folder named repository is created which contains all jar file.
There are there type of repository in maven
- Local Repository
- Center Repository
- Remote Repository
The searching procedure for finding a particular jar file is from local to central to remote.In other-words the jar file will be first searched in local repository and if not found then central and if not found then it ll search that file in remote repository and will download the jar file.
Local Repository
The default repository of maven is m2_home directory i:e m2 folder.
If want to change the local reposiroy location the we have to change the location in settings.xml file which resides in conf folder of maven home directory.
<settings> <!-- local Repository | The path to the local repository maven will use to store artifacts. | | Default: ~/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <localRepository>D:/maven_repo</localRepository>
Central repository
It is the maven own site where exactly all the jar file has been stored.
it is one url which has been provided by Apache software foundation to
download all the required jar file and placing those into local repository
if those are not present in local.
it is one url which has been provided by Apache software foundation to
download all the required jar file and placing those into local repository
if those are not present in local.
The central repository url is "http://repo1.maven.org/maven2/"
we can access this by "http://search.maven.org/"
This repository is by default repository for every pom file.
Remote Repository
Every maven jar files libraries are store in Maven central repository, some times, we need to add some remote repositories to download the libraries from another location instead of the default central repository.
- Search in Maven local repository, if not found, go step 2, else exit.
- Search in Maven central repository, if not found, go step 3, else exit.
- Search in java.net Maven remote repository, if not found, prompt error message, else exit.
<repositories> <repository> <id>java.net</id> <url>https://maven.java.net/content/repositories/public/</url> </repository> </repositories>
we can have multiple remote repository in a single pom.xml and are placed under repositories tag like...
<repositories> <repository> <id>java.net</id> <url>https://maven.java.net/content/repositories/public/</url> </repository>
<repository> <id>JBoss repository</id> <url>http://repository.jboss.org/nexus/content/groups/public/</url> </repository>
</repositories>
and a particular jar file will be searched from top to down manner.in other words
whenever a particular jar file will be searched,it will be first searched in first
repository under the repositories tag, if not found then only it will go to
next and so on..
Description of maven pom file
To use maven as a build tool in our project we have a xml file named "pom.xml" stands for project object model in which we have to place the required jar file information as a dependency.
The necessary tag for a pom are listed below...
<artifactid>
<groupId>
<package>
<url>
<dependencies>
<dependency>
<plugins>
and so on...
Every pom file will generate a jar file or war file and a parent pom file which may act as a dependency to another pom file.In otherwords the dependency between multiple module we can achieve my using maven parent tag i:e <parent> which contain artifactid ,groupid and version of the parent jar file or pom file.Using this parent tag we can have a modular dependency(Inheritance) between our different module to achieve performance in our project.A simple parent tag is like..
<parent> <groupId/> <artifactId/> <version/> <relativePath/> </parent>
Here we can give the give the parent url also...
The common maven tag for all dependency is dependencies tag where we can declare
multiple jar as a dependency.it is the root tag for all dependency tag.it is look
like..
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
For better performance we can declare all the dependancy under dependancy management tag. ex..
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<!-- type and scope omitted since they use the default values -->
</dependency>
</dependencies>
</dependencyManagement>
artifactId- It describes the jar file name
groupId-It describes the jar file package
version-It describes the version to which the jar file belong.
Apart from this the dependency tag contain another optional tag called scope ,
in which we can use a particular jar either at compile time or runtime. i:e
<scope>
</scope>
It contain there values which are
compile
runtime
provided
The default is provided.
If its value is compile then it will used during compilation of .java file by
compiler only and can to be visible at run time and if its value is runtime then
it will be used during execution by jvm and if its value is provided then it
will used during compilation and will be at runtime also.
it means at run time automatically it will be provided.
Build Tag
It is the child tag of root tag called pom and it contains information which are required to build a web application .
It contain a tag called final name whose value represent the web application war file name.
Apart from that it contain one sub element called pluginmanagement tag under which various inbuilt plugin can be declared.
Ex..
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>MyPlugins</groupId>
<artifactId>hiPlugin</artifactId>
<version>1.0</version>
<configuration>
<greetings>welcome</greetings>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
It is optional tag of build tag and is used to to good performance in our application.In other words without
pluginManagement tag we can declare plugins tag also.
Plugin tag
It is the sub tag of plugins tag and is used to declare different type inbuilt plugins is to be placed to the pom file to achieve some inbuilt functionality from different tools like JaxB,wsdl2java and so on.
In other-words we use these plugin to automate some extra functionality.
ex..
<
plugin
>
<
artifactId
>maven-compiler-plugin</
artifactId
>
<
configuration
>
<
source
>1.6</
source
>
<
target
>1.6</
target
>
</
configuration
>
</
plugin
>
Here we are using to get the java compiler plugin which tells to maven that we
are using jdk 1.6 version compiler.
Every plugin are declared under one sub root tag called plugins(<plugins>)
A plugins tag can have multiple plugin tag as a sub elements.
<
plugins
>
<!--
It's advised not to chickin the generated classes. By default they are
generated in target/generated-sources with xmlns namespace provided
in xsd. If you need the sources to be generated uncomment the below.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packagename>xxx.schema</packagename>
<schemaDirectory>${basedir}/src/main/resources</schemaDirectory>
<outputdirectory>${basedir}/src/main/java/xxx/generated</outputdirectory>
</configuration>
</plugin>
-->
<
plugin
>
<
groupId
>org.jvnet.jaxb2.maven2</
groupId
>
<
artifactId
>maven-jaxb2-plugin</
artifactId
>
<
configuration
>
<
extension
>true</
extension
>
<
args
>
<
arg
>-Xfluent-api</
arg
>
</
args
>
<
plugins
>
<
plugin
>
<
groupId
>net.java.dev.jaxb2-commons</
groupId
>
<
artifactId
>jaxb-fluent-api</
artifactId
>
<
version
>2.1.8</
version
>
</
plugin
>
</
plugins
>
<
bindingDirectory
>src/main/resources/binding</
bindingDirectory
>
</
configuration
>
<
executions
>
<
execution
>
<
goals
>
<
goal
>generate</
goal
>
</
goals
>
</
execution
>
</
executions
>
</
plugin
>
</
plugins
>
This comment has been removed by the author.
ReplyDeletehttps://saglamproxy.com
ReplyDeletemetin2 proxy
proxy satın al
knight online proxy
mobil proxy satın al
ZNZF