Maven 有什么作用:是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
百度了一通,发现并不能理解这些太过公式化的介绍。我刚接触maven,现在觉得比较有用的是:
1.maven对项目中各种jar包的自动下载导入。
2.对项目测试。
其他的还没有太过深入的了解。
先介绍如何安装Maven
先在官网下载maven:https://maven.apache.org/download.cgi
下载这个。在本地解压缩。
之后需要配置环境变量:
电脑右键-》高级系统设置-》环境变量
新建M2_HOME,变量值为你解压的目录
在系统变量Path,编辑,在末尾添加
;%M2_HOME%\bin
基本和配置JDK差不多。
下面查看Maven是否配置完成
在cmd输入 mvn -v
能够显示版本信息就OK了。
下面介绍下Maven的基本信息:
1.maven的文件结构
src
<span style="white-space:pre"> </span>-main<span style="white-space:pre"> </span>//存放主代码
<span style="white-space:pre"> </span>-java
<span style="white-space:pre"> </span>-package
<span style="white-space:pre"> </span>-test<span style="white-space:pre"> </span>//存放测试
<span style="white-space:pre"> </span>-java
<span style="white-space:pre"> </span>-package
<span style="white-space:pre"> </span>-resource<span style="white-space:pre"> </span>//存放资源文件
<span style="white-space:pre"> </span>
pom.xml<span style="white-space:pre"> </span>//project object model
项目对象模型 pom.xml 简易版的如下
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>公司名唯一标识(一般是公司名反写+项目名)</groupId>
<artifactId>项目名唯一标识(项目名)</artifactId>
<version>版本号(1.0-SNAPSHOT)</version>
<dependencies>
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.6</version>
</dependency>
</dependencies>
</project>
在Maven中任何一个依赖和插件都可以叫做构件,那么如何定义一个构件,如上面代码所示
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.6</version>
</dependency>
这就是一个依赖,这个依赖由groupId,artifactId,和version,这个三个坐标来定位它。
maven在编译时,会先在你的本地仓库中搜索由这三个坐标定位的构件,如果没有,就会去maven配置文件中默认的全球中心仓库中查找,并下载,如果还是找不到,就报错了。
maven的一些常见命令
1. 创建Maven的普通java项目:
这是直接输全参数的自动创建文件骨架。
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
这是提示参数的创建方法
mvn archetype:generate
2. 创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 编译源代码: mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 产生site:mvn site
7. 打包:mvn package
8. 在本地Repository中安装jar:mvn install
9. 清除产生的项目:mvn clean
10. 生成eclipse项目:mvn eclipse:eclipse
11. 生成idea项目:mvn idea:idea
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
13. 编译测试的内容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
16. 清除eclipse的一些系统设置:mvn eclipse:clean
三套生命周期
Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
1、clean生命周期:清理项目,包含三个phase。
1)pre-clean:执行清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行清理后需要完成的工作
2、default生命周期:构建项目,重要的phase如下。
1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
3、site生命周期:建立和发布项目站点,phase如下
1)pre-site:生成项目站点之前需要完成的工作
2)site:生成项目站点文档
3)post-site:生成项目站点之后需要完成的工作
4)site-deploy:将项目站点发布到服务
maven在使用后面的命令时会自动调用前面的命令。
例如:使用package时会先clean和compile在打包成jar
在imooc上有学习视频,觉得教的很好
http://www.imooc.com/learn/443