云端网 - www.ydw.org
用JAVA开发项目离不开Maven,因为Maven是一个强大的Java项目构建工具,当然你也可以使用其它工具来构建项目,但由于Maven是用Java开发的,因此Maven是首选,先来了解一下什么是构建工具,构建工具就是将软件项目构建相关的过程自动化的工具,构建一个软件项目通常包含以下一个或多个过程。
这些过程一般也可以整合到构建工具中,因为它可以实现自动化,实现自动化构建过程的好处是将手动构建过程中犯错的风险降到最低,而且自动构建工具通常要比手动执行同样的构建过程要快,如何利用Maven进行项目开发呢,我们开始学习。
1、安装Maven
输入‘mvn’命令后,终端上显示错误信息,这是因为还没有给Maven传入pom文件,因此出现该错误信息,显示Maven错误信息说明Maven已经安装好了。
2、Maven
Maven的中心思想是POM文件(项目对象模型),POM文件是以XML文件的形式表述项目的资源,如源码、测试代码、依赖(用到的外部Jar包)等。POM文件应该位于项目的根目录下,下图说明了Maven是如何使用POM文件的,以及POM文件的主要组成部分:
3、POM
当你执行一条Maven命令的时候,你会传入一个pom文件,Maven会在该pom文件描述的资源上执行该命令。
4、构建生命周期、阶段和目标
Maven的构建过程被分解为构建生命周期、阶段和目标,一个构建周期由一系列的构建阶段组成,每一个构建阶段由一系列的目标组成,当你运行Maven的时候,会传入一条命令,这条命令就是构建生命周期、阶段或目标的名字,如果执行一个生命周期,该生命周期内的所有构建阶段都会被执行。如果执行一个构建阶段,在预定义的构建阶段中,所有处于当前构建阶段之前的阶段也都会被执行。
5、依赖和库
执行时其中一个首要目标就是检查项目的依赖xml根目录,依赖是你的项目用到的jar文件(java库)。如果在本地仓库中不存在该依赖,则Maven会从中央仓库下载并放到本地仓库,本地仓库只是你电脑硬盘上的一个目录,你可以根据需要制定本地仓库的位置。也可以指定下载依赖的远程仓库的地址。
6、插件构建
构建插件可以向构建阶段中增加额外的构建目标。如果Maven标准的构建阶段和目标无法满足项目构建的需求,可以在POM文件里增加插件,Maven有一些标准的插件供选用,如果需要也可以自己实现插件。
7、配置文件
配置文件用于以不同的方式构建项目,比如你可以需要在本地环境构建,用于开发和测试,也可能需要构建后用于开发环境,这两个构建过程是不同的,在POM文件中增加不同的构建配置,可以启用不同的构建过程,当运行Maven时xml根目录,可以指定要使用的配置。
8、Maven POM 文件
Maven的POM文件是一个xml文件,描述项目用到的资源,包括源代码目录、测试代码目录等的位置,以及项目依赖的外部jar包,POM文件描述的是构建“什么”,而不是“如何”构建,如何构建是取决于Maven的构建阶段和目标,如果需要你也可以向Maven构建阶段中添加自定义的目标,每一个项目都有一个POM文件。POM文件即pom.xml,应该放在项目的根目录下。一个项目如果分为多个子项目,一般来讲父项目有一个POM文件,每一个子项目都有一个POM文件。在这种结构下既可以一步构建整个项目,也可以各个子项目分开构建。下图为一个最小化的POM文件。
**属性表示使用的POM模型的版本。选择和你正在使用的Maven版本一致的版本即可。
**属性是一个组织或者项目(比如开源项目)的唯一ID,不一定非要使用Java的包名,也不一定要使用.分隔符来分隔ID中的词。但是如果你这么使用,项目将会位于Maven仓库的结构化目录中,该结构化目录与group ID匹配。每一个.是一个目录分隔符,每一个词都表示一个目录。group ID为com.的项目将位于目录/com/中,目录路径中的表示Maven仓库的路径。
ID是正在构建项目的名称,也是构建完项目后生成的jar包的文件名的一部分,构建过程的输出,即构建结果,在Maven中成为构件。
**包含项目的版本号。如果你的项目有不同的发行版,比如开源API,对构建过程版本化是很有用的。如果使用版本,项目的用户就可以查看项目的具体版本。版本号是 ID目录下的子目录名,版本号也用作构建结果名称的一部分。
9、父POM文件
所有的Maven pom文件都继承自一个父pom。如果没有指定父pom,则该pom文件继承自根pom。pom文件的继承关系如下图所示:
可以让一个pom文件显式地继承另一个pom文件,这样可以通过修改公共父pom文件的设置来修改所有子pom文件的设置,在pom文件的起始处指定父pom,如子pom文件的设置可以覆盖父pom文件的设置,只需要在子pom文件里指定新的设置即可。
10、有效POM文件
考虑到pom文件的继承关系,当Maven执行的时候可能很难确定最终的pom文件的内容。总的pom文件(所有继承关系生效后)被称为有效pom( pom)。可以使用以下的命令让Maven打印出当前的有效pom:mvn help:-pom执行以上命令,Maven会将有效pom输出到命令行。
11、Maven配置文件
配置文件里的设置,对所有的pom文件都是有效的。你可以配置:本地仓库的路径;当前的编译配置选项等等配置文件名为.xml,两个配置文件分别为:+ Maven安装目录中:$/conf/.xml+ 用户主目录中:${user.home}/.m2/.xml两个配置文件都是可选的。如果两个文件都存在,则用户目录下的配置会覆盖Maven安装目录中的配置。
12、Maven的运行
安装好了Maven,并且在项目的根目录下创建了POM文件,可以在项目上运行Maven了,运行Maven只需在命令行执行`mvn`命令即可,当执行`mvn`命令时,将构建周期、阶段或目标作为参数传进去,Maven就会执行它们,也可以向mvn命令传入多个参数,执行多个构建周期或阶段,如 mvn clean 该命令首先执行clean构建周期,删除Maven输出目录中已编译的类文件,然后执行构建阶段即可。
www.ydw.org - 云端网