Maven 初识

Apache Maven是一个软件项目管理和综合工具。

(一)Maven 介绍

Apache Maven 是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,Maven 可以从一个中心资料片管理项目构建,报告和文件。本章将和你一起学习 Maven 的基本使用。

官方网站:http://maven.apache.org/

1、Maven 介绍

Maven 是一个项目管理和综合工具。 Maven 提供了开发人员构建一个完整的生命周期框架。 开发团队可以自动完成项目的基础工具建设, Maven 使用标准的目录结构和默认构建生命周期。在多个开发团队环境时, Maven 可以设置按标准在非常短的时间里完成配置工作。 由于大部分项目的设置都很简单, 并且可重复使用, Maven 让开发人员的工作更轻松, 同时创建报表, 检查, 构建和测试自动化设置。

Maven 提供了开发人员的方式来管理:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCM(Software Configuration Management)
  • Releases
  • Distribution
  • mailing list

概括地说, Maven 简化和标准化项目建设过程。 处理编译, 分配, 文档, 团队协作和其他任务的无缝连接。 Maven 增加可重用性并负责建立相关的任务。

2、为什么学习Maven

不学习 Maven 不能做 Java 开发么? 当然不是,但是随着你 Java 开发越用越熟悉,涉及到第三方包也会越来越多,比如 web开发,自动化测试,这里面会用到大量的第三方库,不同库之间的依赖关系,如何快速有效果的管理这些库;以及在多人开发的团队中,如何有效的保证每个开发人员所使用的第三方库的一致性。这个时间 Maven 就起来了非常重要的作用。

(二)Maven 安装

1、准备工作

JDK : Java 开发程序所使用的环境。
IntelliJ IDEA : Java 开发程序所使用的 IDE。

Maven : 下载地址 http://maven.apache.org/download.cgi

2、环境配置

将 Maven 下载到本地解压, 这里以下载当前最新版本(apache-maven-3.5.2-bin.zip)为例, 解压到得到 apache-maven-3.5.2 目录。
下面设置环境变量:

“此电脑” 右键菜单—>属性—>高级—>环境变量—>系统变量—>新建..

变量名: MAVEN_HOME
变量值: D:\java\apache-maven-3.5.0

找到 path 变量名—>“编辑” 添加:

变量名: PATH
变量值: %MAVEN_HOME%\bin;

验证 Maven 环境是否配置成功


(三)Maven 设置仓库地址

1、修改本地仓库地址

maven 用来管理我们的 Java 第三方库,我们需要设置仓库的本地地址来存放这此第三方库。

打开 Maven 目录下的配置文件(\apache-maven-3.5.2\conf\settings.xml) , 找到 <localRepository> ..</localRepository> 标签。

<!-- localRepository
 | The path to the local repository maven will use to store artifacts.
 |
 | Default: ${user.home}/.m2/repository
-->
<localRepository>D:/Java/maven/repo</localRepository>
Maven 默认将本地仓库设置在 ${user.home}/.m2/repository 目录下,这里修改为 D:/Java/maven/repo 路径。

2、设置中央仓库地址

中央仓库即当我们要用到 Java 的第三方库时应该去哪里下载。

同样打开 Maven 目录下的配置文件(\apache-maven-3.5.2\conf\settings.xml) , 找到 <mirrors>..</mirrors> 标签。

<mirrors>
  <!-- mirror
   | Specifies a repository mirror site to use instead of a given repository. The repository that
   | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
   | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
   |
  <mirror>
    <id>mirrorId</id>
    <mirrorOf>repositoryId</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://my.repository.com/repo/path</url>
  </mirror>
   -->
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <!--<mirrorOf>central</mirrorOf> -->
    <mirrorOf>*</mirrorOf>
  </mirror>
</mirrors>

这里将 Maven 的中央仓库地址修改为 aliyun ,国内访问速度会更快。

(四)通过 mvn 命令创建 Maven 项目

1、通过mvn 命令创建项目

Maven官方文档:Maven Getting Started Guide

通过 mvn 命令创建一个 Maven 项目。

mvn -B archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app
-B :该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。
archetype:generate : 创建 Maven 项目的命令。
DarchetypeGroupId : 指定 Apache maven 组织名。
DgroupId : 指定项目或公司组名。

DartifactId :指定项目名。

例如:

mvn archetype:generate -DgroupId=com.myapp.pro -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

将,该命令复制到 Windows 命令提示符(Linux 终端)下执行。


继续通过mvn idea:idea命令生成 IntelliJ IDEA 项目工程。

> cd myapp\
..\myapp> mvn idea:idea

然后,通过 IntelliJ-IDEA 打开 myapp 项目。

(五) IntelliJ-IDEA 创建 Maven 项目

IntelliJ IDEA 默认集成的就有 Maven 插件,所以,我们也可以直接使用它来创建 Maven 项目。

1、修改Maven 配置

首先, 打开 IntelliJ IDEA 开发工具, 菜单栏: “File” —>“Settings…” , 搜索“Maven” 选项, 如下图。

设置参数:

  • Maven home directory: 设置本地安装的 Maven 目录。 如“D:/java/apache-maven-3.5.0”。
  • User settings file: 选择 Maven 目录下的配置文件。 如“D:\java\apache-maven-3.5.0\conf\settings.xml” ,需要勾选“Override” 选项才能设置。
  • Locla repository: 设置本地仓库地址。 上一个选项设置好后, 该选项自动设置。

注: 这里也可以不用设置,直接使用 IntelliJ IDEA 的默认配置。

2、创建Maven 项目

接下来在 IntelliJ IDEA 中创建 Maven 项目。 菜单栏: “File” —>“New” —>“Project…” , 打开创建 Maven 。

在左侧项目类型中选择“Maven” , 然后点击“Next” 。

GoupId: 指定项目或公司组名。

ArifactId: 指定项目名称。

然后, 继续点击“Next” 。

Project name: 设置项目名称。
Project Iocation: 设置项目的在本地磁盘的位置。

最后, 点击“Finish” 完成 Maven 项目创建。

(六) pom.xml 配置文件

用 Maven 来管理 Java 项目的第三方库,最主要是通过 pom.xml 文件,这一小节将解释该文件的使用。

1、pom.xml 文件

以 (四)通过 mvn 命令创建 Maven 项目 创建的项目为例。打开项目根目录下的 pom.xml 文件。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.myapp.pro</groupId>
  <artifactId>myapp</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>myapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
* project:pom.xml文件中的顶层元素; 
* modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
* groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。 
* artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式:  - . (比如:myapp-1.0.jar)。 
* version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。 
* name:项目的显示名称,通常用于maven产生的文档中。 
* url:指定项目站点,通常用于maven产生的文档中。 

* description:描述此项目,通常用于maven产生的文档中。

2、管理第三方库

对于一个第三方库的添加,下面的几个参数是我们需要关注的。

<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>

,它主要管理依赖的部署。目前可以使用5个值: 

  • compile,缺省值,适用于所有阶段,会随着项目一起发布。 
  • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
  • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
  • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
  • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

通过查看pom.xml中Junit的配置,显然版本有些旧了,我们去下载最新的Junit4,但我们又不知道Maven中的具体的版本怎么办呢?我们可以到 Maven 的中央仓库去查询。
Maven仓库:http://mavenrepository.com/

通过该网站查询“Junit”, 找到 Junit4 最新版本的配置。

修改 pom.xml 中的 Junit4 的配置。

<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>

或者通过 Maven 命令(插件)更新项目的第三方库。

myapp > mvn clean
myapp > mvn idea:idea

关于 Maven 插件列表参考: http://maven.apache.org/plugins/index.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值