Maven实战之初识MavenMaven的简单介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven实战之初识MavenMaven的简单介绍相关的知识,希望对你有一定的参考价值。
Maven实战之初识MavenMaven的简单介绍
作用:Maven主要用于项目的构建,管理项目的依赖以及项目的信息(自动化构建、编译、单元测试、生成文档、打包、部署)
优势:相对于Ant、Make等,Maven抽象构建过程,提供构建任务的实现,自动化构建,有效地提高了开发效率,使开发人员可以集中精力在主要的开发任务上。而且Maven是跨平台工具,意味着在主流操作系统中,Maven都提供了对应的技术支持
使用注意:需要在JDK1.4及以上版本使用
Maven的安装下载地址:Maven下载地址,选择最新版本的Binary文件即可,这里使用的是最新的apache-maven-3.3.9-bin.zipWindows平台安装
首先将下载下来的Maven文件解压到一个文件中
然后配置环境变量(该步骤可省略,不过建议配上)
新建一个名为M2_HOME的变量,其值为刚刚解压缩的maven文件,这里为E:\ProgramFiles(x86)\apache-maven-3.3.9如下所示
将;%M2_HOME%/bin;添加到PATH路径中,如下所示:
测试配置结果:打开CMD窗口,输入mvn-version如果上面的配置正确,则可以看到对应的输出信息,大致如下所示
Linux平台的配置Linux平台的配置跟Windows平台的配置基本一致,只是将Maven文件加入Path路径的方式不同,这里就不做具体演示Maven的简单配置为了更好地使用Maven,这里对Maven进行简单的配置拷贝settting.xml文件在刚刚解压的Maven文件中,在conf目录中有一个setting.xml,这是Maven的全局性设置文件,在该文件中的修改会影响到当前计算机的所有用户,一般情况下,推荐复制一份到家目录的的.me文件夹之下,windows的配置路径为C:\Users\xuhuanfeng\.m2设置代理由于某些原因,Maven使用过程中有时会出现无法连接到中央仓库的情况,这个时候可以尝试更换仓库地址,也可以选择设置代理,这里使用的是设置代理的方式,设置方式为在中增加一个,具体如下所示<proxies><proxy><id>proxy</id><!--代理名称--><active>true</active><!--选择该代理--><protocol>http</protocol><!--代理协议--><host>127.0.0.1</host><!--代理服务器地址--><port>1080</port><!--代理端口--></proxy></proxies>
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
Maven_HelloWorld搭建完Maven平台之后,我们就开始我们的Maven学习之旅,首先肯定是久负盛名的HelloWorld项目了
新建一个文件夹,命名为HelloWorld作为我们项目的根目录
在HelloWorld目录下编写一个pom.xml文件,内容如下所示:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/ www.boayuleguan.cn POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>www.boayulec.cn 4.0.www.boakaihuyl.cn 0</modelVersion><!--Maven2/Maven3固定写法--><groupId>cn.xuhuanfeng.maven</groupId><!--groupId,可以近似当作公司/组织+项目名--><artifactId>HelloWorld<www.shaixiu.net/artifactId><!--artifactId,可以近似看做模块名称--><version>1.0-SNAPSHOT<ersion><!--当前版本号--><name>Maven_HelloWorld</name>www.aboyule66.cn<!--项目的名称,可以省略--></project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
在HelloWorld文件中,创建对应的Java类,对应的包路径为src/main/java/cnhuanfeng/maven/HelloWorld.java,内容如下packagecn.xuhuanfeng.maven;/***MavenHelloWorld项目*/publicclassHelloWorld{publicStringsayHello(){return"Maven_HelloWorld";}
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
使用CMD窗口进入到项目的根目录,也就是HelloWorld目录下,执行mvncleancompile,输入内容如下从上图中可以看到,HelloWorld项目已经编译成功了,其中的部分细节内容,后续将补上,这里可以暂时先不在意在HelloWorld目录中,会自动生成target目录,其中有一个名为classes文件夹,编译好的class文件就存放在这里,类路径跟包名一一对应,如下所示:
编写测试用例这里我们为HelloWorld.java编写对应的单元测试,并且交给Maven由其进行自动的测试
引入Junit依赖,在pom.xml文件中,project元素下增加Junit依赖,代码如下:<dependencies><dependency><!--引入Junit依赖--><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7<ersion><scope>test</scope></dependency></dependencies>
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
编写测试类,在HelloWorld文件中,创建对应的Java类,对应的包路径为src/test/java/cnhuanfeng/maven/TestHelloWorld.java,内容如下packagecn.xuhuanfeng.mavenwww.boayulec.cn
mportstaticorg.junit.Assert.assertEquals;importorg.junit.Test;/***测试HelloWorld*/publicclassHelloWorldTest{@TestpublicvoidtestHelloWorld(){HelloWorldhelloWorld=newHelloWorld();Stringresult=
www.yxin7.com
helloWorld.sayHello();assertEquals("Maven_HelloWorld",result);}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
运行测试用例,执行命令为mvncleantest,对应的结果如下所示:
从上图中可以看到,在执行test之前,会对整个项目先进行compile,从而保证始终得到最新版本的class文件,并且,从图中可以看到,Maven自动帮我们运行测试样例,并且返回样例的结果。文件路径说明Maven会自动编译src/main/java目录下的文件,并且编译,运行src/test/java目录下的测试样例,这也是我们将路径命名如下的原因,同时,将测试代码以及主代码分开也是一种比较好的做法。自动生成项目骨架在上面中,我们手动编写了一个基本的Maven项目,包括了配置pom.xml,HelloWorld.java以及对应的测试类,可能你会感觉到实际上使用Maven很麻烦,确实,如果按照上面那种做法,很繁琐,所以Maven为我们提供了另一种机制,可以通过配置archetype来生成对应的项目骨架,不过,由于这里只是简单的入门,所以我们直接使用www.aboyule.comMaven提供的archetype即可,通过命令mvnarchetype:generate就可以快速地生成一个项目的骨架,具体过程如下所示:中间会有很多内容,主要是Maven从中央仓库中拉取相关的信息,这里省略然后可以看到熟悉的内容,只需要在这里填入对应的groupId,artifactId,version,package等信息即可最后生成的项目结果图如下所示:并且包含了Junit依赖以及一个简单的测试样式,是不是很方便?总结在这一小节中,我们了解了关于Maven的一些基本知识,手动创建了一个Maven例子,HelloWorld,并为其编写测试样例,通过Maven的构建插件以及测试插件,自动完成编译、测试的工作,最后通过Maven的自动构建工具,构建一个简单的项目骨架,Maven的学习之路还在继续。
以上是关于Maven实战之初识MavenMaven的简单介绍的主要内容,如果未能解决你的问题,请参考以下文章
MavenMaven之使用maven快照版本机制进行多项目依赖开发
MavenMaven之如何部署项目生成的Maven构建到远程仓库