1.Maven的简介
1.1Maven 这个词可以翻译为"专家" “内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理。
1.2无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷开发,Maven都能大显身手。
2.Maven的四大特性
2.1.依赖管理系统
Maven为Java世界引入了一个新的依赖管理系统jar包管理 jar升级时修改配置文件即可。在Java世界中,可以用groupld、artifactld、version组成的Coordination(坐标)唯一标识一个依赖。
2.2.多模块构建
项目复查时dao service controller层分离将一个项目分解为多个模块已经是很通用的一种方式。
在Maven中需要定义一个parent POM作为一组module的聚合POM。在该POM中可以使用标签来定义一组子模块。parent POM不会有什么实际构建产出。而parent POM中的build配置以及依赖配置都会自动继承给子module。
2.3.一致的项目结构
Ant时代大家创建Java项目目录时比较随意,然后通过Ant配置指定哪些属于source,那些属于testSource等。而Maven在设计之初的理念就是Conversion over configuration(约定大于配置)。其制定了一套项目目录结构作为标准的Java项目结构,解决不同ide带来的文件目录不一致问题。
2.4.一致的构建模型和插件机制
3. Maven的安装配置和目录结构
3.1.Maven的安装配置
- 检查JDK的版本 (DK版本1.7及以上版本)
- 在dos窗口下输入 java -version 检查jdk版本
3.2.下载Maven
3.3.配置Maven环境变量
- 3.3.1.打开系统环境变量新增MAVEN_HOME值为maven的安装目录(安装目录不能包含中文)
- 3.3.2.编辑Path,添加%MAVEN_HOME%\bin
3.4.检查Maven是否安装成功
打开dos窗口 输入mvn -v如下图
4.修改默认仓库、更换阿里云镜像(加快依赖下载)
4.1.打开Maven包→打开conf→打开settings.xml
- 4.1.1.添加本地仓库地址:
<localRepository>D:\Maven\repository</localRepository>
- 4.1.2.更换阿里云镜像
<mirrors>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirrors>
- 4.1.3.关联配置jdk
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</profile>
5.IDEA编辑器集成Maven环境
- 5.1设置Maven
- File→Other Settings→Default Settings(默认设置)→搜索Maven
- 5.2.选择Maven,选择jdk版本,勾选模板
5.3.运行成功(出现一个新的target文件)
6.常用命令
命令 | 描述 |
---|---|
mvn -version | 显示版本信息 |
mvn clean | 清理项目生产的临时文件,一般是模块下的target目录 |
mvn compile | 编译源代码,一般编译模块下的src/main/java目录 |
mvn package | 项目打包工具,会在模块下的target目录生成jar或war等文件 |
mvn test | 测试命令,或执行src/test/java/下junit的测试用例. |
mvn install | 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用 |
mvn deploy | 将打包的文件发布到远程参考,提供其他人员进行下载依赖 |
mvn site | 生成项目相关信息的网站 |
mvn eclipse:eclipse | 将项目转化为Eclipse项目 |
mvn dependency:tree | 打印出项目的整贷依赖树 |
mvn archetype:generate | 创建Maven的普通java项目 |
mvn tomcat7:run | 在tomcat容器中运行web应用 |
mvn jetty:run | 调用Jetty插件的 Run目标在Jetty Servlet容器中启动web应用 |