2022-09-16 第六小组 张宁杰 Maven
Maven
项目构建工具,主流
- 整个项目架构,source,resource,test,testresource
- 依赖:导入的jar包
- apache的官网命名规则:
项目.apache.org
配置环境变量
- 和配置JAVA,JDK基本一样
新建MAVEN_H0ME:maven的安装路径
编辑PATH:新建一个%MAVEN_HOME%\bin
通过CMD:mvn -v测试配置是否成功
解压Maven压缩包
conf目录:配置目录,在这个目录下有一个settings.xml,Maven的核心配置文件。
maven会自动给我们下载jar包!
在JavaWEB阶段,所有的jar包都是我们下载好复制粘贴到我们的项目里。我们在使用框架开发的过程中,会导入非常多的jar包,jar包要统一管理,“版本”
这些jar包是怎么下载的,从哪下载的?
- 通过一个配置文件,找到这些jar包,最终我们往服务器上部署项目的时候,只需要部署我们的源码,和这个配置文件。jar包下载完成后,会储存在我们的仓库中
<localRepository>E:/repository</localRepository>
- 通过maven下载的依赖都放在这个位置。需要手动创建这个目录,不能使用中文
- maven可以联网下载依赖,如果不做任何操作,默认会到外网下载依赖,速度和效率极低,所以我们可以做一个镜像(阿里云maven镜像仓库),需要配置阿里云镜像仓库
- 各大编程工具已经内置了maven,当我们第一次创建maven工程时,会联网自动下载一些Maven本身需要的依赖。
maven项目结构
src
main---源码
java---源码.java
resources---资源文件
test---测试源码
java---测试源码.java
resources---测试资源文件
pom.xml就是我们上面说的那个配置文件,来管理依赖的。
maven生命周期
target目录:存放编译后的java文件
默认(default)真正进行项目编译打包等工作阶段
-
validate:验证项目是否正确
-
compile:编译,编译项目的源代码
-
test:测试,junit这些测试不应该要求代码被打包或部署
-
package:进行打包。
-
java工程-------.jar
-
javaweb工程----.war
-
pom
-
-
verify:验证,对集成测试结果执行检查
-
install:安装
- 所有的项目都可以编程jar包(依赖)
-
deploy:部署,将最终的包赋值到远程存储库,和其他开发人员共享(maven私服)
清理(clean)执行必要的清理工作。删除target文件夹
站点(site)生成项目报告,站点,发布站点(基本不用)
Maven坐标
GroupId:团体组织标识符,它一般情况下以创建这个组织的名称的逆向域名开头。
ArtifactId:项目名。单独项目的唯一标识符。
Version:版本
- SNAPSHOT:快照,不稳定版本,临时版本
- LASEST:最新版,不意味着是稳定版本
- RELEASE:发布版,正式版,稳定版
通过这三个向量来定位Maven仓库中其jar包所在的位置,把对应的jar包引入到工程中。
依赖范围
compile:默认。编译范围,编译,测试,运行都有效。参与打包,安装。
test:测试范围,只有在test范围下才能用,不参与打包,安装。
provided:编译和测试,不参与打包,安装。
runtime:运行,只参与运行。
system:废弃。系统。
import:废弃。引入。
依赖的传递:(常识性问题)
假如demo01中引入了mysql,servlet,fastjson,codec依赖,我把demo01install到了我的本地仓库,或者是maven私服,如果其他成员通过GAV引入了我的demo01,demo01中的mysql,servlet,fastjson,codec会一起引入进来
创建一个 带有MAVEN骨架的web工程
打包方式为war的时候,创建webapp目录的图标带有小圆点
properties标签:定义一些变量
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<javax.servlet-api.version>4.0.1</javax.servlet-api.version>
</properties>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet-api.version}</version>
<scope>provided</scope>
</dependency>
如果创建的是一个没带maven骨架的web工程,如何配置项目?
1.找到project structure中的Facets,添加web.xml(注意路径问题!!!)
2.配置tomcat,在edit configurations中添加tomcat