目录Maven简介什么是MavenMaven的目标Maven安装与配置下载配置环境变量本地仓库远程仓库验证Maven仓库Maven坐标坐标介绍坐标规则packaging资源打包方式Maven依赖中央仓库Maven 注意事项配置 默认路径设置Settingsother Settings解决下载中断问题cleandelete创建Maven项目创建maven web项目创建项目基本配置Maven操作板文件目录配置 Pom.xml Jsp 页面注释配置 Tomcat服务器错误
必须全程联网!!!!
必须全程联网!!!!
必须全程联网!!!!
Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程 抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。
Maven 是使用 Java 语言编写的,因此它和 Java 一样具有跨平台性(允许系统不同),这意味着无论是在 Windows ,还是在 Linux 或者 Mac OS 上,都可以使用相同的命令进行操作。
Maven 使用标准的目录结构和默认构建生命周期,因此开发者几乎不用花费多少时间就能够自动完成项目的基础构建工作。
Maven 能够帮助开发者完成以下任务:
构建项目
生成文档
创建报告
维护依赖
软件配置管理
发布
部署
总而言之,Maven 简化并标准化了项目构建过程。它将项目的编译,生成文档,创建报告,发布,部署等任务无缝衔接,构建成一套完整的生命周期。
Maven 的主要目标是为为开发人员提供如下内容:
一个可重复使用,可维护且易于理解的项目综合模型
与此模型进行交互的工具和插件
约定优于配置
约定优于配置(Convention Over Configuration)是 Maven 最核心的涉及理念之一 ,Maven对项目的目录结构、测试用例命名方式等内容都做了规定,凡是使用 Maven 管理的项目都必须遵守这些规则。
Maven 项目构建过程中,会自动创建默认项目结构,开发人员仅需要在相应目录结构下放置相应的文件即可。
三大分支:
文件 |
目录 |
Java 源代码 |
src/main/java |
资源文件 |
src/main/resources |
测试源代码 |
src/test/java |
测试资源文件 |
src/test/resources |
打包输出文件 |
target |
编译输出文件 |
target/classes |
安装Maven环境要求:JDK 1.7 及以上。
从官网 apache.org ,往下翻,然后下载 Maven。
你也可以点击archives选择其它历史版本。
以apache-maven-3.5.4 为例,点击3.5.4/
点击binaries
点击apache-maven-3.6.3-bin.zip
下载完成后,解压到合适的位置即可,例如: D:\apache-maven-3.5.4
右键点击“计算机”图标,选择 "属性",然后点击 "高级系统设置",点击"环境变量"。
新建系统变量 MAVEN_HOME和 M2_HOME,变量值为 Maven 的安装目录,如下图:
编辑系统变量 Path,添加变量值:;%MAVEN_HOME%\bin;%M2_HOME%\bin,如下图
第二种配置方式:不需要分号
在命令提示符下执行 mvn -version ,输出结果 有显示版本号,证明 Maven 配置成功。
在任意盘符下新建文件夹repository(仓库,文件夹名称自定义),新建文件夹的路径则为:D:\repository
打开apache-maven-3.6.3目录下的 conf/settings.xml 文件
找到节点localRepository,在注释外添加自己仓库的地址并保存settings.xml 文件
斜杠要反着改,才会被识别出
默认远程仓库在国外,为提高访问效率通常会使用国内阿里云远程仓库,打开settings.xml 文件,找到mirrors标签,复制下面的代码,保存即可
验证maven本地仓库和远程仓库是否配置成功,按住win+R 输出cmd弹出命令行窗口。
首次执行 mvn help:system 命令,Maven相关工具自动帮我们到Maven中央仓库下载缺损 或 Maven中央仓库更新的各种配置文件和类库(jar包)到Maven本地仓库中。
下载完各种文件后, mvn help:system 命令会打印出所有的Java系统属性和环境变量:
这样就下载完成!!!
Maven 在某个统一的位置存储所有项目的构件,这个统一的位置,我们就称之为仓库。换言之,仓库就是存放依赖和插件的地方。
maven 依赖的查找顺序:本地仓库 -> 私服 -> 中央仓库
关于仓库分为:本地仓库,私服,中央仓库;其中私服和中央仓库都属于远程仓库。
中央仓库:maven团队自身维护的仓库,属于开源(对所有人开放)的;
私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源(范围限定);
本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源;
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
一定范围内共享资源,能做到仅对内不对外开放
在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称为构件。
在 Maven 世界中存在着数十万甚至数百万构件,在引入坐标概念之前,当用户需要使用某个构件时,只能去对应的网站寻找,但各个网站的风格迥异,这使得用户将大量的时间浪费在搜索和寻找上,严重地影响了研发效率。为了解决这个问题,于是 Maven 引入了 Maven 坐标的概念。
Maven 坐标一套规则,它规定:世界上任何一个构件都可以使用 Maven 坐标并作为其唯一标识,Maven 坐标包括 groupId、artifactId、version、packaging 等元素,只要用户提供了正确的坐标元素,Maven 就能找到对应的构件。
任何一个构件都必须明确定义自己的坐标,这是 Maven 的强制要求,任何构件都不能例外。我们在开发 Maven 项目时,也需要为其定义合适的坐标,只有定义了坐标,其他项目才能引用该项目生成的构件。
Maven 坐标主要由以下元素组成:
groupId: 项目组 ID,定义当前 Maven 项目隶属的组织或公司,通常是唯一的。
它的取值一般是项目所属公司或组织的网址或 URL 的反写,例如 net.biancheng.www。
artifactId: 项目 ID,通常是项目的名称。
version:版本。
packaging:项目的打包方式,默认值为 jar。
以上 4 个元素中 groupId、artifactId 和 version 是必须定义的,packaging 是可选的。
packaging定义资源的打包方式,取值一般有如下三种:
参数 |
说明 |
jar |
该资源打成jar包,默认是jar |
war |
该资源打成war包 |
pom |
该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构 |
通俗的说,如果一个 Maven 构建所产生的构件(例如 Jar 文件)被其他项目引用,那么该构件就是其他项目的依赖。
Maven 坐标是依赖的前提,所有 Maven 项目必须明确定义自己的坐标,只有这样,它们才可能成为其他项目的依赖。当一个项目的构件成为其他项目的依赖时,该项目的坐标才能体现出它的价值。
当 Maven 项目需要声明某一个依赖时,通常只需要在其 POM 中配置该依赖的坐标信息,Maven 会根据坐标自动将依赖下载到项目中。例如,项目中使用 junit 作为其依赖,其配置如下。
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 " target="_blank">http://maven.apache.org/maven-v4_0_0.xsd"> ... dependencies 元素可以包含一个或者多个 dependency 子元素,用以声明一个或者多个项目依赖,每个依赖都可以包含以下元素: groupId、artifactId 和 version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。 type:依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。 scope:依赖的范围。 optional:标记依赖是否可选。 exclusions:用来排除传递性依赖。 中央仓库地址: https://mvnrepository.com/ 每次创项目:打开 Settings 设置,修改三个配置,ok 即可 创建 其他新项目,设置默认值 无非必要,不要动仓库 打开 Maven:先 clean,然后 install 或 test 直接把 target 包删除 新建文件夹 Java 选择 main 目录,右键 然后选择文件(可以 Ctrl + ↓),进行多选。回车就建立好 两个文件夹了。 通过使用Maven 的 maven-archetype-webapp模板来创建一个快速启动Java Web应用程序的项目。 下一步 下一步 可以选择添加一个配置,用以加快 本地依赖的加载速度 Import Changes:手动导入 jar包(依赖) Enable Auto-Import:自动导入 最重要的文件:pox.xml 修改pom.xml配置jdk1.8 修改web.xml配置 web3.0 xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"version="3.0"> ... 默认 2.3 版本,我们是 3.0版本,应该改成自己所用的版本 修改之前:默认的 修改之后 说明 配置 JDK:静态变 动态 修改之前 修改之后 (UTF-8 也可以动态加载) 配置 JUnit 前往中央仓库,拿到坐标 更改为 动态版本,记得手动导入依赖包 配置 Servlet 配置 mysql 查看依赖关系图 怎么取消??? 打开设置,直接编辑即可(不想要就删除) 双击 锤子,进行添加 选择本地的 Tomcat 添加服务器 发布项目,可以选择浏览器、端口号。 完成!! 加载方式 记住:使用 热加载,也需要 添加项目(本地发布和 云发布),本地发布够用了 发布成功就 自动弹出网页内容 本地仓库没有下载全面,jar 包和依赖都下载不了。我这里是 网络不稳定导致的。 缺少这个 依赖包等: Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6
大部分依赖声明只包含 groupId、artifactId 和 version 三个元素,至于 scope、optional 以及 exclusions 等元素,了解即可
中央仓库
Maven 注意事项
配置 默认路径设置
Settings
other Settings
解决下载中断问题
clean
delete
创建Maven项目
eclipse中先创建 workspace(工作空间),一个workspace 下包含N个项目;
idea中先创建 project(工程),一个project 下包含N个module(模块);
目录及文件说明:
hello:项目名,包含 src 文件夹和 pom.xml。
src/main/java:用于存放项目的 Java 文件。
src/main/resources:用于存放项目资源文件。
src/test/java:用于存放所有测试 Java 文件,如 JUnit 测试类。
src/test/resources :用于存放测试资源文件。
target:项目输出位置,用于存放编译后的文件。
pom.xml:Maven 项目核心配置文件。
创建maven web项目
创建项目
archetypeCatalog
internal
基本配置
Maven操作板
文件目录
配置 Pom.xml
版本统一放上面
坐标到中央仓库拿
Jsp 页面注释
配置 Tomcat服务器
错误