Maven是Apache的一个跨平台的软件项目管理和构建工具,主要用于基于java平台的项目构建、依赖管理。
Maven项目构建过程如上图所示,主要构建命令有几种:
mvn validate验证,验证项目是正确的并且所有的信息是可用的;
mvnclean 清理,清理项目缓存输出,一般是target文件夹被删除;
mvncompile 编译,将java源文件编译成.class文件;
mvn test测试,生成测试报告,运行test目录下的所有单元测试;
mvnpackage 打包,将项目打成jar、war或者pom;
mvninstall 安装,将当前项目安装到本地maven库,供其他项目依赖。
mvn deploy部署,在构建环境中完成,复制最终的包到远程库。
执行后面的命令会自动执行前面的命令,比如执行mvn package时会执行validate、clean、compile、test、package五个阶段。
1)安装jdk1.7并配置环境变量
2)安装并配置maven环境变量
到maven官网下载maven最新版压缩包,解压到本地,添加系统环境变量
MAVEN_HOME: D:\develop\apache-maven-3.5.0
Path: % MAVEN _HOME%\bin
以上两步配置完毕后,在命令行执行mvn –v,可以maven版本信息和基本配置信息表示配置成功。
3)自定义maven仓库位置
找到maven安装目录conf,打开setting文件,修改localRepository节点配置为指定路径即可,比如:
4)maven安装目录结构
说明:
bin中存放可执行的二进制文件
conf存放settings.xml文件
lib 运行maven所依赖的jar包
5)maven项目目录约定
src/main/java 存放项目的java源文件
src/main/resources 存放项目的资源文件,如spring,hibernate、mybatis的配置文件
src/test/java 存放所有的测试的java文件
src/test/resources 存放测试用的资源文件
target 项目输出位置
pom.xml 依赖管理文件
1)项目对象模型
说明:maven根据pom.xml文件,把它转化成项目对象模型(POM),这时要解析依赖关系,然后去相对应的maven库中查找所依赖的jar包。在clean,compile,test,package等生命周期阶段都有相应的Plug-in来做这些事情,而这些plug-in会产生一些中间产物。
2)maven仓库
Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库local和中央仓库central。
本地仓库:Maven本地库的Jar包仓库。
中央仓库:Maven官方提供的远程仓库。
当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包到本地仓库。
3)maven坐标
坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。
groupId:定义当前maven项目属于哪个项目
artifactId:定义实际项目中的某一个模块
version:定义当前项目的当前版本
packaging:定义当前项目的打包方式
4)依赖管理
依赖分为传递依赖、排除依赖,还有依赖冲突解决
5)聚合与继承
1)手动建立maven目录
安装Maven项目目录约定手动创建各个文件夹即可,一般不会使用这种方式;
2)命令行maven命令自动创建maven项目
本地磁盘建立一个空目录C:/maven/hello,命令行进入到hello目录,执行下面的命令
mvn archetype:generate-DgroupId=com.cloud.hellomaven -DartifactId=hellomaven-service -Dversion=1.0.0-SNAPSHOT-Dpackage=com.cloud.service
执行成功的话会自动在hello中创建符合maven项目约定的目录结构。
说明:
archetype:generate:生成maven项目骨架
-DgroupId指定maven坐标的groupId
- DartifactId指定maven坐标的artifactId
- Dversion指定maven坐标的version
- Dpackage指定maven项目的src下的包名
自动创建的maven项目结构如下
3)Eclipse IDE创建maven项目
Eclipse提供了一个很好的插件m2eclipse无缝将Maven和Eclipse集成在一起,配置插件选择本地maven目录和配置文件setting.xml即可。
点击Eclipse菜单栏File->New->Ohter->Maven,选择Maven Project,一路默认Next,有一步需要填写GroupId、Artifact Id、Version、选择打包方式Package(jar、war、pom),选择编译环境即可
完成后目录结构如下
4)Idea IDE创建maven项目
Idea IDE是一款很不错的开发Maven项目的IDE,创建一个mavenweb项目的过程如下:
选择File-New-Project,选择Maven,勾选Create from archetype,选择maven-archetype-webapp,
点击Next,填写Group Id、Artifact Id、Version三项
点击Next,选择Maven home,选择setting file
点击Next,填写Project name,选择项目路径即可
Finish完成maven web项目创建
<projectxmlns="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.0modelVersion>
<parent>
<groupId>groupId>
<artifactId>artifactId>
<version>version>
parent>
<modules>
<module>module>
modules>
<groupId>com.demo.ssmgroupId>
<artifactId>demo-ssmartifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>jarpackaging>
<name>demo-ssmname>
<url>www.gseem.comurl>
<description>这是项目描述description>
<developers>feiyuedevelopers>
<licenses>licenses>
<organization>organization>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
properties>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.9version>
<type>type>
<scope>testscope>
<optional>optional>
<exclusions>
<exclusion>exclusion>
exclusions>
dependency>
<dependency>
<groupId>com.demo.mavengroupId>
<artifactId>demo.mavenartifactId>
<version>0.0.1-SNAPSHOTversion>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>dependency>
dependencies>
dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>groupId>
<artifactId>artifactId>
<version>version>
plugin>
plugins>
build>
project>
欢迎大家关注博主订阅号“Java技术日志”,提供Java相关技术分享,从Java编程基础到Java高级技术,从JavaWeb技术基础Jsp、Servlet、JDBC到SSH、SSM开发框架,从REST风格接口设计到分布式项目实战。剖析主流开源技术框架,用亲身实践来谱写深度Java技术日志。
Java技术日志