Maven使用手册

前言:背景介绍

  1. Maven是什么?

如果没有Maven,你可能不得不经历下面的过程:

  • 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网下载jar包.....
  • 当某些jar包有依赖的时候,还要去下载对应的依赖jar包
  • 当jar包依赖有冲突时,不得不一个一个的排查
  • 执行构建时,需要使用ant写出很多重复的任务代码
  • 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建
  • 当进行测试时,需要一个一个的运行....检查

 

有了Maven,它提供了三种功能:

  • 依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。
  • 项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验、编译、测试、打包、部署、发布...
  • 项目的知识管理:管理项目相关的其他内容,比如开发者信息,版本等等

Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM,Project-Object-Model),这是整个Maven系统的基本单元。

 

2、Maven如何管理jar包

关于jar包的坐标, maven是通过groupId,artifactId,以及version确定一个唯一的jar包。

例如,最常使用的Junit的声明就是如下:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

首先先来说说Maven下载jar包的过程:

在Maven中会涉及到几种仓库:

  • 工作空间,即我们的项目工程,这里面可能会放着pom.xml文件,这个pom.xml就是maven的配置文件
  • 本地仓库,本地仓库用于存放jar包,其实Jar包并不是直接放入工作空间的,它是存放在本地仓库。默认的文件夹是 ".m2" 目录。,然后在执行发布打包的时候,添加依赖路径

 

  • 私库:私库是使用者自己搭建的maven仓库,用于缓解频繁从外网下载jar包资源的压力。而且使用私库作为缓存层,也相对安全一些。(一般公司都会有自己的Maven私服(采用Nexus搭建),它会与中央仓库进行index同步)
  • 共享仓库:Maven中央仓库或者一些常用的镜像网站都属于这。Maven中央存储库 https://repo1.maven.org/maven2/ (查询三方组件时可用https://search.maven.org)

 

3、Apache Maven 是做什么用的?

Maven 是一个项目管理和构建自动化工具。但是对于我们

程序员来说,我们最关心的是它的项目构建功能。Maven 使用约定优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:

${basedir}

存放 pom.xml和所有的子目录

${basedir}/src/main/java

项目的 java源代码

${basedir}/src/main/resources

项目的资源配置,比如说 property文件

${basedir}/src/test/java

项目的测试类,比如说 JUnit代码

${basedir}/src/test/resources

测试使用的资源

一个 maven 项目在默认情况下会产生 JAR 文件(也可配置生成war等),另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

 

  • Maven基本操作

一些基本的操作,编译,构建,单元测试,安装,网站生成和基于Maven部署项目。

使用Maven构建项目

"mvn clean package" 来构建项目

使用Maven清理项目

"mvn clean" 来清理项目

使用Maven运行单元测试

"mvn clean test" 来执行单元测试

将项目安装到Maven本地资源库

"mvn install" 打包和部署项目到本地资源库

生成基于Maven的项目文档站点

"mvn site" 来为您的项目生成信息文档站点

使用"mvn site-deploy"部署站点(WebDAV例子)

"mvn site-deploy" 通过WebDAV部署自动生成的文档站点到服务器

部署基于Maven的war文件到Tomcat (一般结合jenkins使用)

"mvn tomcat:deploy" 以 WAR 文件部署到 Tomcat

 

参考学习网站推荐:

http://www.yiibai.com/maven/

http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

http://www.cnblogs.com/xing901022/p/5024357.html

 

学习书籍PDF推荐:https://pan.baidu.com/s/1gdu1rDD

 

一、环境准备:Maven,Eclipse-Maven-Plugin

  1. Maven下载: http://maven.apache.org/download.cgi ,解压即可。然后配置M2_HOME以及Path环境变量。Maven默认下载的jar包放在用户目录下的 .m2目录(注意windows默认当成隐藏目录). 测试:打开cmd输入mvn –v看是否安装成功

    %M2_HOME%\bin

  2. Eclipse-Maven-Plugin:在高版本Eclipse中其实内置了Maven插件

(此处低版本maven可选)然后在Window->Preference->Java->Installed JREs->Edit

在Default VM arguments中设置

-Dmaven.multiModuleProjectDirectory=$M2_HOME

 

然后配置maven取消勾选下载远程索引

二、Maven的生命周期与阶段

理解Maven核心概念博客:

http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html

 

官方文档部分: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

https://maven.apache.org/ref/3.3.9/maven-core/lifecycles.html

 

Maven中有三大生命周期,他们相互独立,分别是:

1 clean 清理

2 default 构建

3 site 建站

一般来说,clean和default比较常用。

每个生命周期又有不同的阶段,阶段按顺序执行,并且可以指定执行结束的阶段。构建的时候,会依次从最上面的阶段执行到指定的那个阶段。

比如,clean有3个阶段:

1 pre-clean 执行清理前要完成的工作

2 clean 清理上一次构建生成的文件

3 post-clean 执行清理后需要完成的工作

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值