`

Maven的基本用法

阅读更多
Maven好几年前就成为Java企业级开发的标配了,不懂Maven,你都不好意思说你是Java开发者。甚至像Spring、Hibernate等开源框架早都已经用上更新的Gradle作为项目依赖管理工具。

笔者的博文也用Maven来描述jar依赖配置很久了,本文主要简单总结一下Maven的基本用法,以供自己博文中引用,给没学过Maven的读者参考参考。

一、Maven的安装
二、Maven的生命周期
三、Maven的配置文件settings.xml
四、Maven项目的配置文件pom.xml

一、Maven的安装
1、首先去Apache的Maven官网下载最新版本的Maven:http://maven.apache.org/download.cgi



Windows下下载apache-maven-3.3.9-bin.zip
linux下下载apache-maven-3.3.9-bin.tar.gz
maven最新版本是3.3.9,我用的是3.3.3,懒得下载了,不要在意这些细节。

2、将下载的zip压缩包解压到某个目录
这里将Maven解压到D:\SDK\Maven\apache-maven-3.3.3目录

3、将解压后的Maven目录配置到环境变量中去
以Maven目录为D:\SDK\Maven\apache-maven-3.3.3为例,即如下图所示
配置环境变量M2_HOME为:D:\SDK\Maven\apache-maven-3.3.3



配置环境变量Path为:%M2_HOME%\bin



4、验证Maven安装
windows下打开cmd,执行mvn -version



发现提示没找到JAVA_HOME,那么配置一下环境变量JAVA_HOME



配置好JAVA_HOME变量后,重新打开cmd执行mvn –version



至此,maven安装成功了。

二、Maven的生命周期
Maven的生命周期执行命令格式:mvn 任务名
Maven会执行生命周期内的所有在该任务之前的任务
如:mvn clean,会执行pre-clean和clean两个任务。

Maven有三套独立的生命周期,分别是clean、default、site。
clean的生命周期如下(mvn clean)
pre-clean -> clean -> post-clean
pre-clean:执行clean之前需要完成的任务
clean:清理上一次构建生成的文件
post-clean:执行clean之后需要立刻完成的任务

default的生命周期如下(这个是开发者用得最多的)
compile -> test -> package -> install -> deploy
compile:编译项目
test:测试项目
package:打包项目
install:发布项目到本地maven仓库
deploy:发布项目到远程maven仓库

site的生命周期如下
pre-site -> site -> post-site -> site-deploy
pre-site:执行site之前需要完成的任务
site:生成项目的文档站点
post-site:执行site之后需要完成的任务
site-deploy:将生成的文档站点发布到远程服务器

在mavn的这三套生命周期中,开发者还可以自定义插件,实现在生命周期的任意阶段添加任务。对我们开发者而言,一般是不需要编写maven插件的。

三、Maven的配置文件settings.xml
在maven的安装目录下,conf目录下的settings.xml是maven的全局配置文件,主要配置maven的本地仓库路径,插件组,maven的远程服务器和maven仓库的镜像,还有一些maven的全局设置。

1、配置maven的本地仓库路径(默认是操作系统用户下的.m2目录)
<localRepository>D:\SDK\Maven\m2_repository</localRepository>


2、插件组
我平时不用,如用到自行google

3、配置maven的远程服务器
<server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
</server>


4、配置maven仓库的镜像
<mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
</mirror>

我的maven常用镜像参考:http://jisonami.iteye.com/blog/2298592

5、maven的一些全局配置
这个我也不常用,就是在<profiles>标签下配置,需要结合<activeProfiles>使用

四、Maven项目的配置文件pom.xml
Maven最关键的部分来了,也是我们用的最多的配置文件pom.xml,每个maven项目都有一个pom.xml在其根目录下,用于描述该项目的jar依赖配置。

1、 确定一个Maven项目的坐标
这是Maven最基本的配置,在pom.xml中会用到很多。
<groupId>标签确定一个maven项目的公司名或组织名,一般使用该公司或组织的域名反转
<artifactId>标签确定一个maven项目的项目名或模块名
<version>标签确定一个maven项目的版本
以笔者目前的博文示例项目为例
<groupId>org.jisonami</groupId>
		<artifactId>Jisonami2</artifactId>
	<version>0.1.1</version>


2、 maven项目的父项目
<parent>标签确定一个maven项目的父项目,该maven项目会继承自父maven项目所有属性和依赖配置,在本项目中配置的同名属性或依赖会覆盖父项目中的配置
<parent>标签中使用前面介绍的maven坐标三元素确定父maven项目
以继承spring-boot-starter-parent项目为例
<parent>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-parent</artifactId>
			<version>1.3.3.RELEASE</version>
	</parent>


3、 maven项目的属性
maven项目的属性可以看成是编程语言中的变量,使用<properties>标签定义一些属性,此处定义的属性可以在在pom.xml文档中使用el表达式引用,即${name}的形式引用名为name的属性,属性一般用于maven坐标中的<version>标签,比如
<properties>
		<oracle6.version>11.2.0.3</oracle6.version>
</properties>


4、maven项目的依赖配置
Maven项目的依赖配置使用<dependences>配置,下面嵌套多个<dependence>标签,每个标签配置一个依赖,每个依赖使用maven坐标描述。如下所示:
< dependencies>
<!-- 引入oracle数据库jdbc驱动包 -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>${oracle6.version}</version>
		</dependency>
	</dependencies>


5、maven的构建配置
maven的构建配置在<build>标签下配置,我们主要配置一下maven插件,比如使用spring-boot-maven-plugin,则如下配置:
<build>
		<plugins>
			<!-- spring boot项目编译插件 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.3.RELEASE</version>
			</plugin>
		</plugins>
	</build>


以上就是我经常使用的maven特性,更详细的配置参考我的Github项目Jisonami2:https://github.com/jisonami/Jisonami2
  • 大小: 37.2 KB
  • 大小: 15.7 KB
  • 大小: 17.4 KB
  • 大小: 2.8 KB
  • 大小: 6.4 KB
  • 大小: 15.7 KB
0
2
分享到:
评论
2 楼 jisonami 2016-05-23  
string2020 写道
http://blog.csdn.net/mn960mn/article/category/2300763

这博客还不错,你的?
1 楼 string2020 2016-05-23  
http://blog.csdn.net/mn960mn/article/category/2300763

相关推荐

    maven的基本使用和配置

    maven的下载配置和基本使用

    maven工具和安装方法

    该版本为maven3.5版本,包含安装及基本的使用方法,帮助你快速入手

    maven window下安装包

    第10章:使用Maven进行测试/10.7 测试报告/10.7.1 基本测试报告/10.7.1.1 txt版本 第10章:使用Maven进行测试/10.7 测试报告/10.7.1 基本测试报告/10.7.1.2 XML版本 第10章:使用Maven进行测试/10.7 测试报告/10.7.2...

    在IDEA的maven项目中连接并使用MySQL8.0的方法教程

    1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果settings.xml中配置了...

    编程开发+Maven技术+Maven安装与配置+技术课程

    maven安装与配置 《快速上手Maven:2-3年技术人员的实战指南》是一门专为具有2-3年工作经验的技术专业人士设计的...掌握Maven的安装和基本配置方法。 熟练运用Maven进行项目构建、依赖管理和插件开发。 优化和定制Ma

    Maven实战.pdf

    本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有...

    Maven实战 许晓斌 著

    本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有...

    《Maven实战》

    本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有...

    Maven实战 高清版

    本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有...

    Maven实战 高清版pdf

    本书它内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有...

    maven 教程

    本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者...

    maven项目管理培训

    maven是一个用于java项目管理和自动构建的软件工具。协同开发的基本规范,为大家提供方便的协作的模式,能增加代码的复用,提高生产率。 提供方便,规范化的打包方法,是公司完成自动...大量的开源项目使用了maven。

    vscode-maven:VSCode扩展“ Maven for Java”

    Java Maven 产品特点 VS Code的Maven扩展。...基本用法 Maven资源管理器该扩展程序将扫描工作区中的pom.xml ,并在边栏中显示所有Maven项目及其模块。 运行插件目标该扩展程序解析Maven项目的有效pom,并按层

    Maven配置文档

    了 Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和 插件、聚合与继承等 Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用 Nexus建立私服、使用 Maven...

    用Maven做项目构建

    读完本文,您将了解Maven的基本概念和使用它进行项目构建的基本方法。本文将介绍基于ApacheMaven3的项目构建的基本概念和方法。Maven是一套标准的项目构建和管理工具,使用统一规范的脚本进行项目构建,简单易用,...

    Maven入门--概念与实例

    本文主要是关注Maven中的重要概念,并以一个实例来阐述使用Maven的 基本方法。文末有例子代码下载的链接。 1 关键名词 Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型...

    baseversion-maven-plugin:从 Maven 项目中提取基本版本号。 例如 1.0.0-SNAPSHOT 的基本版本是 1.0

    从 Maven 项目中提取基本版本号。 如果您的项目在持续交付管道中进行管理并且版本号应包含内部版本号,这将非常有用。 在这种情况下,您必须将项目的基本版本号与内部版本号数字连接起来。 请参阅下面的示例。 用法 ...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 1.2、课程内容简介 由于富客户端技术进一步扩展浏览器功能,使之提供更加高效和...

    maven-it-extension:实验性的JUnit Jupiter扩展,用于编写Maven插件的集成测试Maven扩展Maven Core

    当前,有关Maven插件/ Maven扩展等的集成测试的基本内容是,现有的解决方案不是基于Apache Maven项目悠久的开发历史而非常简洁和全面的。 一段时间内有很多不同的方法,但是从我的角度来看,它们都缺少一件事:简单...

Global site tag (gtag.js) - Google Analytics