Maven的介绍与使用
一、介绍
1.什么是Maven?
Maven主要的目的是简化开发中项目的构建(环境搭建、编码、编译、测试、打包、部署)过程。 Maven是由apache开源组织发布的一款工具软件。
2.使用Maven开发的好处
1)简化项目的构建
2)提供统一的构建系统 。 Maven可以摆脱开发工具对项目的约束,Maven自己提出了一套项目开发的结构规范。
3)Maven可以帮助我们管理项目的依赖。
4)Maven支持远程部署。
Maven提供一些非常方便的构建项目的命令。
二、Maven中的核心概念
1. Maven的仓库
1) 远程仓库
① Maven官方的中心仓库
② 第三方搭建的Maven仓库
2)本地仓库
本地仓库是指我们开发人员自己电脑磁盘上的仓库。当我们在第一次使用到一个依赖jar的时候,那么
需要到远程仓库将指定的依赖jar下载到你的项目中。同时会在你自己计算机配置的maven本地仓库位置,
存储下载好的依赖jar. 当你在当前的计算机再次使用相同的依赖jar的时候,如果本地仓库有, 就不需要去远程仓库下载了。
2.坐标
坐标就是指jar包在仓库中的唯一标识, 我们通过在项目中指定一个jar包的坐标,来引入指定的依赖jar。
1) 坐标的构成:
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency> // dependency代表我要引入一个依赖
<groupId>org.apache.struts</groupId> // 组织名, 通常是发布jar包的组织名
<artifactId>struts2-core</artifactId> // 项目名
<version>2.3.16.3</version> // 引用项目的版本号
</dependency>
2) 坐标的获取: https://mvnrepository.com 到maven中心仓库官网搜索需要的依赖坐标。
3.Maven项目目录结构规范
shop_project
|-src/main/java – 编写项目源码的目录
|-src/main/resources – 放置项目需要的配置文件目录
|-src/test/java – 编写测试类的目录
|-src/test/resources – 测试需要的配置文件目录
|-target --存放项目构建后的输出内容,比如源码编译后的.class
pom.xml – 这个配置文件是每个maven项目必须具备的, 主要作用是书写依赖的坐标,maven会根据pom.xml配置文件中指定的依赖坐标,去下载依赖的jar包。
三、安装和配置Maven
1.安装
去Maven的官网下载Maven: http://maven.apache.org/index.html ,下载完毕后,解压缩Maven的zip包完成安装。
2.配置Maven环境变量
MAVEN_HOME = 配置maven的安装目录 // M2_HOME名字也可以
path=值配置maven安装目录下的bin目录
3.配置本地仓库的位置
编写maven_home/conf/settings.xml
4.配置阿里与镜像
配置阿里云的仓库,提高下载依赖的速度: 在settings.xml中配置
<mirrors>
<!--阿里云的maven私服-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
四、手动使用Maven构建项目
1. 按照Maven的目录结构规范,创建一个项目
2. 执行mvn命令
在项目的目录下,执行maven相关的命令,构建和测试项目:
1)mvn compile // 编译项目
2)mvn clean // 清除历史记录
3)mvn test // 执行测试
4)mvn package // 打包项目
5)mvn install // 打包项目,同时按照到本地仓库
五、Myeclipse中集成与使用Maven
1.集成Maven
2.创建一个JavaSE项目
PS: 解决一个小问题
3.编写一个操作数据库的案例
手动的安装一个jar包到本地仓库:
mvn install:install-file -Dfile=你的jar包在本地磁盘的路径 -DgroupId=指定坐标组织名 -DartifactId=定义一个项目名 -Dversion=版本号 -Dpackaging=jar
4.创建一个JavaWeb项目
<!-- 手动引入JavaEE开发的依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>