前言
maven是一个优秀的项目构建工具,可以帮助我们管理项目开发时的jar包,使我们不需要过多的关心jar包的管理问题, 提高我们的开发效率,并且提供一系列命令操作,完成项目的编译、清除、和打包等操作。
一、为什么要学习 Maven
如果我们没有maven会怎么样?
1.jar包数量太多,难以寻找
2.jar包和jar中存在依赖
3.不方便管理jar包,每个jar包功能可能不同
4.编译不方便
二、Maven 简介
Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。
maven的相关概念
Pom(Project Object Model 项目对象模型)
1.是maven中的核心配置文件,配置项目的基本信息,依赖jar的坐标、插件、编译选项等。
2.配置了所依赖的 jar,Maven会自动从构件仓库中下载相应的构件。
项目坐标
jar包在仓库的位置,包括groupId(类似于包名)、artifactId(项目名)、packaging(jar,war)、version(版本号) ,scope(范围)等,这些形成了jar包的唯一标识。
仓库
1.放jar的地方,分为:中央仓库(只有一个 apache创建的), 镜像仓库(可以有多个,对中央仓库的备份), 本地仓库(在自己电脑上)
2.中央仓库全球共享,先将 jar 从中央仓库下载到本地仓库,然后在项目中引用本地仓库的 jar
三、Maven 开发环境搭建
1.在官网下载maven .官网:http:// maven.apache. org
2.配置环境变量: 把maven的bin目录配置到系统变量path中
3.测试 (命令行 mvn -version )
4.配置本地仓库地址
在本地磁盘中建立通过 maven 下载后 jar 文件所存储的文件夹, 一般我们称为仓库(repository),在maven文件夹的conf文件夹下的setting.xml修改
5.配置阿里云 maven 镜像仓库,下载速度更快
6.idea中配置maven
7.创建maven工程
8.Pom.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
<artifactId>mavenDemo</artifactId>
<version>1.0</version>
<name>mavenDemo</name>
<packaging>war</packaging>
<dependencies>
<!--文件上传下载组件-->
<dependency>
<!--组id:仓库地址-->
<groupId>commons-fileupload</groupId>
<!--构建名 项目名-->
<artifactId>commons-fileupload</artifactId>
<!--版本号-->
<version>1.3.1</version>
</dependency>
<!--配置 servlet 开发环境 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope> <!--此jar包只是在本地测试编译时使用,打包时不会打包到项目中-->
</dependency>
</dependencies>
<build>
<!--配置插件-->
<plugins>
<!--配置maven打包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version>
</plugin>
</plugins>
</build>
</project>
1.依赖项的基本坐标:groupId、artifactId、version
2.依赖项的作用范围:scope 默认是 compile
compile:编译时和运行时依赖。如果你的项目最终打包为 war 包,则该依赖包会被拷贝到 war 包中的 lib目录中。
provided:编译项目主代码和测试代码时使用此依赖项,运行时由 jre 或 web 容器提供。如果你的项目最终打包为 war 包,则该 jar 包不会被打包。
3.type依赖项的 packaging 类型,默认是 jar;
四、Maven 命令
maven的常用命令:
1.compile(编译):编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
2.clean(删除):执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
3.package(打包):在你的项目路径下创建一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。
4.install:该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用。
例:把自己开发的一个工具类打包成一个jar包,添加到本地仓库中
1.创建工具类
2.使用install命令
3.在本地仓库中查找jar包
4.在其他项目中测试使用
1.添加jar包依赖
2.测试
总结
本章内容主要介绍了maven的概述以及开发环境的搭建,重点是开发环境的搭建,初学者可能会觉得有点棘手,建议自己亲手搭建几遍,达到熟练的地步。maven提供的命令方便了我们日常对项目的编译、打包和清除等操作。maven本章的内容难度不大,希望读者能够掌握maven的内容,为以后的项目开发打下基础。