13 Maven的概述与使用
13.1 maven的概述
当前工程中我们虽然能实现,但是也出现了一些新问题
1) jar包需要额外手动添加
2) 如果jar包间有依赖关系,需要我们自己解决
所以我们就希望能不能有一个技术帮助我们管理下我们现阶段的工程呢?答案是肯定的,那就是Maven!
13.1.1 什么是maven?
概念 :
Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。
基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目 进行项目构建、依赖管理。
你应该能看到 : 如果我想用maven管理我的java项目,那么我必须安装JDK;
maven 用于管理在Java项目编写期间的
1)项目构建
怎么去创建一个项目
2)依赖管理
项目中应用的jar怎么放入我的项目里
13.1.2 项目构建与依赖管理**什么是项目构建?**
简单理解就是maven对项目结构做了标准化的规定,这样更有利于编写一些大型项目。
项目构建的意义
maven构建项目走的是一个统一 标准流程 在任何环境下都是一样的项目(eclipse idea)
意义 : 能够让你和具体的IDE进行解耦和 你的代码就再也不受IDE的影响了。
什么是依赖管理?
依赖管理就是对项目中的jar包进行管理的
以前 我们自己管理jar包 :
1)重复率太高 占用硬盘资源
2)有些jar非常难找 不方便管理
3) jar与jar有可能还会发生版本冲突
以后 管理jar包
maven 仓库式管理jar包
13.2 Maven安装与配置
13.2.1 maven的安装
本次安装的是maven-3.5.0版本。
安装Maven的前要安装JDK
1) 将安装文件解压到你指定的目录中。这里的Maven安装目录是E:\apache-maven-3.5.0。
2) 配置环境变量
设置环境变量,将Maven安装配置到操作系统环境中
a)打开系统属性面板(桌面上右键单击“我的电脑”→“属性”),点击高级系统设置,再点击环境变量,
b)在系统变量中新建一个变量,变量名为 M2_HOME,变量值为Maven的安装目录E:\apache-maven-3.5.0。
c)点击确定,接着在系统变量中找到一个名为Path的变量,在变量中加上 %M2_HOME%\bin,至此,环境变量设置完成。
3)测试是否安装成功
打开一个新的cmd窗口,运行 mvn -v 命令检查Maven的安装情况
13.2.2 maven仓库的配置**1) maven**仓库的概念
maven的一大特性是能够帮助我们管理jar包,那么maven是如何管理jar包的呢?
maven仓库:maven 存放jar的地方。
中央仓库 : 存放世界上最多的jar包,但是访问速度很慢。
本地仓库:在你电脑里创建一个文件夹存储的jar包,jar包数量少,但访问速度快。
远程仓库:远程私服,jar包数量适中,而且访问速度也是适中。
访问顺序 : 如果项目需要一个jar
① maven先查询本地仓库是否有相关的jar,如果有,直接返回
② 如果没有,先看下有没有配置远程仓库,如果配置了,直接访问远程仓库
③ 如果没有配置远程,直接访问中央仓库,下载jar(自动下载)
下载好了之后放到本地仓库里,然后下次再用相同 jar 时直接从本地获取即可
2)maven仓库的配置
a 配置本地仓库位置
点开自己的maven软件的安装目录,找到里面的conf文件夹,在文件夹里面有个settings.xml 文件
修改 settings.xml 文件里面的本地仓库的位置
配置后使用的时候,就往本地的这个目录下下载jar包。
b 配置阿里云镜像(本次无需配置)
由于中央仓库在国外,网络访问速度慢,所以要配置国内的maven源,比如阿里提供的maven源。
给提供的安装包已经配置好阿里的maven源,不需要再次配置
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<!--This is used to direct the public snapshots repo in the
profile below over to a different nexus group -->
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>
</mirrors>
13.3 maven的使用
13.3.1 Eclipse中 配置 Maven
maven安装和配置完成后,eclipse不知道maven的位置,所以要配置一下,配置完成后eclipse就能找maven的位置
点 window --> Preferences
修改为 maven的settings.xml 配置
13.3.2 Eclipse创建Maven工程
选择菜单项File -> New -> Other,在弹出的对话框中选择Maven下的Maven Project
然后点击Next >,在弹出的New Maven Project对话框中,我们使用默认的选项
点击Next >,此时m2clipse会提示我们选择一个Archetype,我们选择maven-archetype-quickstart
再点击Next >。输入groupId,、artifactId、version、package
创建完成功后工程结构图如下:
13.3.3 maven的项目目录结构
根目录 点进去
src --> 进行java项目编码的统一目录
main --> 写普通的java代码的
java --> 必选 统一编写.java文件的地方 , 代码src目录 --> src/main/java
test --> 写单元测试代码
java --> 单元测试期间编写的.java
resources --> 单元测试期间用到的配置文件都可以放到这个
target --> maven项目存放编译好的文件的统一输出目录 这个目录是不需要你创建及管理 由maven自己管
pom.xml --> maven项目的核心配置文件,记录了项目引入了哪些jar包和这个项目是什么打包方式
刚刚创建好工程的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--组织或公司名称-->
<groupId>com.hainiu</groupId>
<!--项目名称-->
<artifactId>hainiumysql</artifactId>
<!--项目当前版本-->
<version>1.0</version>
<!--项目打jar包-->
<packaging>jar</packaging>
<!--maven工程名称-->
<name>hainiumysql</name>
<url>http://maven.apache.org</url>
<properties>
<!-- 项目编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 添加工程依赖jar的地方 -->
<dependencies>
<!-- 默认带着单元测试jar包 -->
<dependency>
<!--组织或公司名称-->
<groupId>junit</groupId>
<!--项目名称-->
<artifactId>junit</artifactId>
<!--项目当前版本-->
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
依赖配置
<dependencies>
<!-- jar包 -->
<dependency>
<!--简称maven项目的GAV信息-->
<!--jar包的组织信息与项目信息-->
<groupId>junit</groupId>
<!--项目模块ID-->
<artifactId>junit</artifactId>
<!--指定引用某个模板版本-->
<version>4.10</version>
</dependency>
</dependencies>
举例说明 maven 是如何通过一个dependency信息找到 jar包的
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
在阿里云仓库 https://maven.aliyun.com/mvn/search 中搜索 “mysql-connector-java” 按照版本找就能找到
13.3.4 maven的初始化设置1)修改由插件创建的maven项目的编码模式与jdk版本
<properties>
<!-- 项目编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 编译及输出的时候应用那个版本的jdk -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
13.3.5 maven的简单使用
如何往项目中添加jar包?
将 要添加 jar 的 dependency 配置到 pom.xml文件中并保存,maven会自动下载jar包到本地仓库,同时加载到工程里。
下面以添加 MySQL驱动jar为例:
1)添加前查看工程 maven依赖的jar包:
2)将 MySQL驱动jar的dependency 配置到 pom.xml文件
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
3)再查看工程 maven依赖的jar包
13.4 将jdbc操作改造成maven工程
1)在hainiumysql工程的pom.xml 中增加 dependency
<!-- mysql连接jar -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- druid连接池jar -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
查看工程 maven依赖的jar包
2)修改工程所使用的jre版本为1.8
3)修改工程代码编译版本为1.8
3)把代码搬到该工程即可