Maven 了解

maven 相关

在这里有一个maven的教程,大家可以看看,很有用处,很多maven的概念就都了解了,http://www.yiibai.com/maven/

两大核心:
1 对jar包的依赖管理
好处:项目的大小大大的减小了,因为只需要.POM文件管理项目的依赖,不需要jar包实际放在工程中
2 项目构建 项目编码完成之后的操作
编译,测试,打包,部署使用mvn之后,通过命令,实现非常简单

1、maven的作用:

当我第一次搜索Maven的作用到底是什么的时候,一大堆专业词汇冲到我的眼前,例如“项目对象建模”,“Maven和Ant”,“项目生命周期”,“项目依赖管理”。。等等等等等我看不懂的字眼。
通过学习,我告诉大家maven有什么作用。

前言: maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能,其他也没啥,所以大家接触的时候不要害怕!
maven不仅是构建工具,还是一个依赖管理工具和项目信息管理工具,

svn和git都是项目的版本控制工具,管的不一样。

概述
Maven是一个项目构建工具,服务与构建.使用Maven配置好项目后,输入简单的命令,如:mvn clean install,Maven会帮我们处理那些繁琐的任务.
Maven是跨平台的.
Maven最大化的消除了构建的重复.
Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习成本.

一些基本的操作,编译,构建,单元测试,安装,网站生成,打包,和基于Maven部署项目。

使用Maven 打包项目
“mvn package” 来打包项目,不需要指定打成什么包,会根据项目类型进行打包, web 项目打成war包,Java项目打成jar包

使用Maven清理项目
“mvn clean” 来清理项目,清理之前生成的 .class 文件,就是讲target目录删除掉

使用Maven 编译项目
mvn compile 将Java文件编译为.class文件,重新生成target目录

使用Maven运行单元测试
“mvn test” 来执行单元测试, 测试test目录下的所有的测试类,但是要求类要以Test结尾

将项目安装到Maven本地资源库
“mvn install” 打包和部署项目到本地资源库,解决本地多个项目公用一个jar包,不需要一遍遍的复制到每一个工程下面,而且方便修改

生成基于Maven的项目文档站点
“mvn site” 来为您的项目生成信息文档站点

使用“mvn site-deploy”部署站点(WebDAV例子)
“mvn site-deploy” 通过WebDAV部署自动生成的文档站点到服务器

部署基于Maven的war文件到Tomcat
“mvn tomcat:deploy” 以 WAR 文件部署到 Tomcat

group id : 一般为公司域名的倒序,不会重复
artifact id: 项目的名称
version:
snapshot 测试版本
releases: 发行版本

1 . 帮你下载jar包

maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你铺天盖地的到处搜索你需要的jar包了
下面是示范配置文件pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
 <modelVersion>4.0.0</modelVersion>  
 <groupId>exam</groupId>   
 <artifactId>exam_3</artifactId>   
 <packaging>war</packaging>    
 <version>0.0.1-SNAPSHOT</version>  
  <dependencies>    
 <dependency>    
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>   
    <version>3.8.1</version>      
    <scope>test</scope>   
 </dependency>    
 <dependency>      
   <groupId>org.springframework</groupId>   
    <artifactId>spring-web</artifactId>     
    <version>3.0.5.RELEASE</version>  
   </dependency>    
 <dependency>        
   <groupId>org.springframework</groupId>   
   <artifactId>spring-webmvc</artifactId>      
   <version>3.0.5.RELEASE</version>  
   </dependency>   
  </dependencies>
</project>

以上主要看的结点里面的内容,
里面每配置一个,
org.springframework 项目名
spring-webmvc 项目模块
3.0.5.RELEASE 项目版本
maven都会通过,项目名-项目模块-项目版本来maven在互联网上的代码库中下载相应jar包。
所以这就是maven的功能之一,帮你下载jar包

2 . 寻找依赖,帮你下载依赖

寻找jar包是第一基本功能,寻找依赖在这个是在这个基础上的功能。
在maven的代码库中,每一个jar包也有自己的 pom.xml文件,而这个文件里面也会有配置,什么依赖范围我就不细说了,我想表达的就是,只要你配置的jar包所依赖的其他jar包都会被maven自动下载下来。

例如: 你配置了
“`

org.springframework
spring-core
2.6

““
你要maven帮你下载spring-core-2.6.jar包
而这个jar包里面需要用到commons-logging.jar这个包,
这叫就依赖,spring-core-2.6.jar依赖于commons-logging.jar。
这就是maven第二个作用,帮你下载依赖包。

3 . 热部署,热编译

意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。
我就是大概说了一下maven 的基本作用,里面还有更详细的,想要了解的话,我是看这本书学的《Maven实战》这本书学的,这里分享一下免费电子版,感谢作者
http://www.infoq.com/cn/minibooks/maven-in-action

再说说maven,我们每做一个项目,都要往lib目录扔很多jar包,spring的啊hibernate的啊apache的啊等等,这样就会导致很多包不知从哪个角落下载回来的,名称千奇百怪,版本也不明,项目多了以后还得自己复制来复制去,容易有多种不同版本的包混杂。maven最基本最重要的功能就是管理这些项目间的依赖关系,用一个xml来维护。如果你的工程要用spring,你就在maven的pom.xml里配一下spring的项目名称和版本号,要用其他的也一样。

得益于maven已经成为java世界的主流工具,绝大部分知名的项目都在maven中央仓库有标准名称,有各种不同的版本存在,你只要配下名称,配下版本号,maven就会自动从网上为你下载jar包并让你的工程依赖上,你的本地硬盘的仓库目录能看到井井有条的你用过的所有第三方项目的jar包和源代码,再也不用去下载那些来路不明的jar包再扔到工程里了,也不用担心写同一个项目的两个人一个用了3.0版的spring,一个用了2.5版的spring,以至搞出莫名其妙的问题。

有了maven,我们不再需要往git或svn提交jar包,项目库的体积大大减小,下载项目变得快多了。而且只要提交一个pom.xml文件和你的代码,其他人自然也能下载到和你本地一模一样的第三方jar包,下过一次某个jar包以后,其他项目再用同一个jar包时,maven自然会使用本地仓库文件夹里存在的jar包,不需要再次下载,也不会出现很多个拷贝。
另一个好处是maven的pom.xml任何一个主流ide工具都认识,都可以导入项目,你不用再操心你提交的.project和.settings文件因为别人的eclipse版本和你不同而导不进去,也不用再担心有人用的是别的ide认不得你的eclipse项目元文件,你不需要提交这些和开发工具有关的文件到服务器上了。

本文转载自博客 :
http://blog.csdn.net/qq_27376871/article/details/51612742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值