Maven概述与搭建
一.Maven概述
Maven是什么?
Maven是Apache提供的一个开源项目,是一个项目==构建工具,可以帮助开发者管理项目中的jar,以及jar之间的依赖关系,完成项目的编译,测试,打包==,**发布**等工作.
Pom
Pom(Project Object Model 项目对象模型)
Maven管理的项目的根目录下都有一个 pom.xml 文件。
pom.xml 文件指示 Maven 如何工作。
在 pom.xml 文件中配置项目基本信息以及项目构建信息等。比如:项目坐标、 项目依赖的 jar、插件、编译选项等。 一旦在 pom.xml 文件中配置了所依赖的 jar,Maven 会自动从构件仓库中下 载相应的构件。
项目坐标
maven 给每个 jar 定义了唯一的标志,这个在 maven 中叫做项目的坐标,通过这个坐标可以找到你需要用到的任何版本的 jar 包。 groupId、artifactId、packaging、version 的组合被称为项目的坐标,它们形成了项目的唯一标识,Maven 通过坐标来精确定位构件。其中 groupId、artifactId、version 是必须的,且这三项的值必须唯一,packaging 是可选的(默认为 jar)。
例如:
<groupId>com.company</groupId>
<artifactId>mavenPro</artifactId>
<version>1.0</version>
<name>mavenPro</name>
<packaging>war</packaging>
仓库
存放jar包的地方,
分类:
- 中央仓库(只有一个 apache创建的)
- 镜像仓库(可以有多个,对中央仓库的备份)
- 本地仓库(在自己电脑上)
二.Maven开发环境搭建
前提:安装Maven需要有jdk
搭建步骤:
-
安装jdk
-
下载 maven 服务器 (https://maven.apache.org/)
- 点击左侧导航栏download,选择版本
-
安装,配置maven
- 点击下载二进制的 apache-maven-3.5.2-bin.zip 进行解压
- 在系统环境中配置环境变量,在path中配置到maven的bin目录
-
在cmd中输入mvn -version查看其版本
- 如上图所示,表示maven环境配置成功了
-
配置本地仓库地址
-
找到解压后的maven文件夹中的conf文件夹的setttings.xml文件对其修改
- 修改仓库地址
新建一个存储jar包的文件夹,将其地址存入localRepository
<localRepository>本地仓库地址</localRepository>
-
配置阿里云maven镜像仓库(下载速度更快,不修改也可)
默认地址
阿里云镜像地址(替换掉默认地址)
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
-
在idea中创建Maven项目
创建一个Maven框架的项目
选择Java Enterprise
勾选web选项
创建好项目后, maven会过网络下载各种插件以完成任务,因此应保证网络的通畅
项目自动将所需要的jar包等都下载到了指定的本地仓库mavenRepository中
Pom.xml配置
maven 仓库官网(http://mvnrepository.com/)如下图所示:
在 Pom.xml 文件配置 jar 包信息,使用 maven 自动下载 jar 包
配置下载上传组件
<!-- 文件下载上传组件 -->
<dependency>
<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>
</dependency>
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.company</groupId>
<artifactId>mavenPro</artifactId>
<version>1.0</version>
<name>mavenPro</name>
<packaging>war</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.6.2</junit.version>
</properties>
<!--配置项目中依赖的jar的坐标-->
<dependencies>
<!--文件上传下载组件-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--servlet-->
<dependency>
<!-- groupId: 组id,路径-->
<groupId>javax.servlet</groupId>
<!-- 构建名=项目名 -->
<artifactId>javax.servlet-api</artifactId>
<!-- version: 版本号 -->
<version>3.1.0</version>
<!--type:依赖项的packaging类型 不写默认为jar-->
<type>jar</type>
<scope>provided</scope>
<!-- scope:依赖项作用范围
取值:compile: 会被打包到war包中
provided:不会被打包
默认值compile -->
</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>
配置完,点击按钮下载组件
子元素:
依赖项的基本坐标
<groupId>路径
<artifactId>与项目名相同
<version>版本
<type>依赖项的 packaging 类型,默认是 jar
<scope>依赖项的作用范围,默认是 compile。各个取值及含义如下:
compile:编译时和运行时依赖。如果你的项目最终打包为 war 包,则该依赖包会被拷贝到 war 包中的 lib 目录中。
provided:编译项目主代码和测试代码时使用此依赖项,运行时由 jre 或 web容器提供。如果你的项目最终打包为 war 包,则该 jar
Maven命令
Maven 常用命令
- compile —- 编译
- clean —– 删除 target
- test —–test case junit/testNG
- package — 打包
- install — 把项目 install 到本地仓库
添加 jar 到 maven 仓库
mvn install:install-file
-DgroupId=组名(com.company)
-DartifactId=构建名(项目名)
-Dversion=版本(1.0)
-Dpackaging=包类型(jar/war)
-Dfile=jar 包所在的完整路径
示例
mvn install:install-file -DgroupId=com.company -DartifactId=gson-2.1.jar -Dversion=1.0 -Dpackaging=jar -Dfile=E:\user\course\javaEE\gson-2.1.jar
将命令在cmd中运行,若显示 build sucess 则表示添加成功
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15622.html