您的位置:首页 > 编程语言 > Java开发

Maven详细介绍及安装配置

2017-08-25 11:00 253 查看

项目管理工具maven

1.maven介绍

1.1 maven是什么

1.2 什么是项目构建

1.2.1传统的项目构建

1.2.2maven项目构建过程

1.3 什么是依赖管理

1.3.1传统项目的依赖管理

1.3.2maven项目的依赖管理

1.4 使用maven的好处

maven安装

2.1 下载安装

2.2 环境变量配置

2.3 maven仓库

2.3.1maven仓库的作用

2.3.2配置本地仓库

2.3.3全局setting与用户setting

生命周期

3.1三套生命周期

3.2生命周期的阶段

3.3命令与生命周期的阶段

常用Maven命令

4.1compile

4.2test

4.3package

4.4install

Myeclipse插件安装配置(eclipse)

5.1 Myeclipse(eclipse)与maven

5.2 插件安装

5.3指定maven安装目录

5.4user setting配置

5.5Myeclipse(eclipse)浏览仓库

新建Maven项目

1.Maven介绍

1.1maven是什么

maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理

1.2什么是项目构建
项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程

1.2.1传统的项目构建
传统的使用eclipse构建项目的过程如下:

构建过程如下:



1)在eclipse中创建一个java web工程

2)在工程中编写源代码及配置文件等

3)对源代码进行编译,java文件编译成class文件

4)执行Junit单元测试

5)将工程打成war包部署至tomcat运行

1.2.2maven项目构建过程
maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段



上图中部分阶段对应命令如下:

①清理阶段对应maven的命令是clean,清理输出的class文件

②编译阶段对应maven的命令是compile,将java代码编译成class文件。

③打包阶段对应maven的命令是package,java工程可以打成jar包,web工程可以打成war包

1.3什么是依赖管理
①什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。 举个例子:一个crm系统,它的架构是SSH框架,该crm项目依赖SSH框架,具体它依赖的Hibernate、Spring、Struts2

②什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。

1.3.1传统项目的依赖管理
传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,如下图:程序员手工将Hibernate、struts2、spring(或是其他框架)的jar添加到工程中的WEB-INF/lib目录下。



手工拷贝jar包添加到工程中的问题是:

①没有对jar包的版本统一管理,容易导致版本冲突。

②从网上找jar包非常不方便,有些jar找不到。

③jar包添加到工程中导致工程过大。

1.3.2maven项目的依赖管理

maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如下图



1.4使用maven的好处
通过上边介绍传统项目和maven项目在项目构建及依赖管理方面的区域,maven有如下的好处:

①一步构建

②依赖管理

③maven的跨平台,可以在window、linux上使用

④maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本

2.Maven安装

2.1下载安装
①下载

从该网站 http://maven.apache.org/download.cgi 下载

②解压

将maven解压到一个不含有中文和空格的目录中

bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )

boot目录 maven运行需要类加载器

conf目录 settings.xml 整个maven工具核心配置文件

2.2环境变量的配置
计算机上需安装java环境,安装JDK1.7 + 版本 (将JAVA_HOME/bin 配置环境变量path )

①配置 MAVEN_HOME



②将 %MAVEN_HOME%/bin 加入环境变量 path



③通过 mvn -v命令检查 maven是否安装成功,看到maven的版本为3.3.9及java版本为1.7即为安装成功。



2.3maven仓库
2.3.1maven仓库的作用

maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了

下图描述了maven中仓库的类型:



 本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

默认本地仓库位置在 user.dir/.m2/repository,{user.dir}表示windows用户目录。



 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内

 中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

2.3.2配置本地仓库

找到maven解压目录–conf/settings.xml–打开,找到如下位置

加入自定义的仓库路径



2.3.3全局setting与用户setting

maven仓库地址、私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置

在maven安装目录下的有 conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置

如需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认的位置在:user.dir/.m2/settings.xml目录中,{user.dir} 指windows 中的用户目录。

maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件



3.Maven的生命周期

3.1三套生命周期
maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

①clean lifecycle在进行真正的构之前进行一些清理工作

②default lifecycle构建的核心部分,编译,测试,打包,部署等等

③site lifecycle生成项目报告,站点,发布站点

3.2生命周期的阶段
每个生命周期都有很多阶段,每个阶段对应一个执行命令。

①如下是clean生命周期的阶段

pre-clean 执行一些需要在clean之前完成的工作

clean 移除所有上一次构建生成的文件

post-clean 执行一些需要在clean之后立刻完成的工作

②如下是default周期的内容:

validate
generate-sources
process-sources
generate-resources
process-resources     复制并处理资源文件,至目标目录,准备打包。

compile     编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources     复制并处理资源文件,至目标测试目录。
test-compile     编译测试源代码。
process-test-classes

test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package     接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify

install     将包安装至本地仓库,以让其它项目依赖。

deploy     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。


: ③如下是site生命周期的阶段

pre-site 执行一些需要在生成站点文档之前完成的工作

site 生成项目的站点文档

post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

site-deploy 将生成的站点文档部署到特定的服务器上

3.3命令与生命周期的阶段

每个maven命令对应生命周期的某个阶段,例如:mvn clean 命令对应clean生命周期的clean阶段, mvn test 命令对应default生命周期的test阶段。

执行命令会将该命令在的在生命周期当中之前的阶段自动执行,比如:执行mvn clean 命令会自动执行pre-clean和clean两个阶段,mvn test命令会自动执行validate、compile、test等阶段。

注意:执行某个生命周期的某个阶段不会影响其它的生命周期!

如果要同时执行多个生命周期的阶段可在命令行输入多个命令,中间以空格隔开,例如:

clean package 该命令执行clean生命周期的clean阶段和default生命周期的package阶段

4.Maven常用命令

4.1compile
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。



4.2test
test是maven工程的测试命令,会执行src/test/java下的单元测试类。

cmd执行mvn test执行src/test/java下单元测试类,下图为测试结果,运行1个测试用例,全部成功



4.3clean
clean是maven工程的清理命令,执行 clean会删除target目录的内容。

4.4 package
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。

4.5install
install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库

5.Myeclipse(eclipse)插件安装配置

5.1maven与myeclipse(eclipse)
通过入门程序中命令行的方式使用maven工作效率不高,可以在eclipse开发工具中集成maven软件,eclipse是一个开发工具,maven是一个项目管理工具,maven有一套项目构建的规范,在eclipse集成maven软件,最终通过eclipse创建maven工程

5.2插件安装
myeclipse新版本已有了maven插件



5.3指定maven安装目录
一些高版本的eclipse已经内置了maven的安装,下图是eclipse mars2版本中已经内置了maven3.3.3版本,项目为了统一maven的版本不会使用eclipse内置的maven版本,这里我们maven3.3.9



5.3user setting配置
在eclipse中配置使用的maven的setting.xml文件,使用maven安装目录下的setting.xml文件。



注意:如果修改了 setting.xml文件需要点击上图中的“update settings”按钮对本地仓库重建索引,点击“Reindex”。

5.4 eclipse浏览仓库
maven配置完成需要测试在eclipse中是否可以浏览maven的本地仓库,如果可以正常浏览maven本地仓库则说明eclipse集成maven已经完成。

打开eclipse仓库视图,对插件和jar包建立索引



找到Local respository本地仓库项,点击Rebuild index重建索引



重建索引完成点击前边的“+”图标即可查看本地仓库的内容:如下图:



5.Myeclipse(eclipse)新建maven项目

具体可参考博客http://blog.csdn.net/qq_32256235/article/details/77532898
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven myeclipse