Maven 基础
maven 的 Apache 公司开源项目,是项目构建工具。用来依赖管理。
- Eclipse上Maven环境配置使用(全) https://www.cnblogs.com/tangshengwei/p/6341462.html
文章目录
1 maven的好处?
maven 项目 “没有” jar包
使用传统项目开发 crm 项目,项目大小:
同样的项目使用 maven 开发
同样的代码,实现功能都一样,maven 项目如何做到的?
可以初步判断,maven 项目中一定没有jar包。
没有 jar 包,maven项目如何运行?
2 maven的好处如何实现?
依赖管理 & 坐标
-
依赖管理:就是对jar包统一管理。
-
坐标:
项目构建
- 项目在编码完成后,对项目进行编译、测试、打包、部署。
- 一系列操作,都可以通过命令实现。
【案例】通过 maven 命令,将 web 项目发布到 tomcat:
3 maven安装、配置本地仓库
maven 程序安装前提:maven 程序java 开发,它的运行依赖 jdk (<mark>注意,这里不是jre</mark>)
maven 下载安装
配置环境变量
配置本地仓库
仓库类型:
- 创建一个本地仓库,如:“F:\MyFile\javaFile\localRepository-maven”
- 修改配置,settings.xml
- 修改mirrors
因为,网速问题,需要 settings.xml 里再修改点东西,添加一个阿里的镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
4 maven项目标准目录结构
- <mark>对各种文件存放目录进行细分</mark>。
- target :编译了的源码
- main 存放类
- test 存放单元测试类
- java 等同于 java project 的 src 放java代码
- resources 配置文件
- webapp 相当于 webcontent 放(页面、css、js、image)
Java EE视图(不推荐)
Java 视图(推荐)
5 maven的常用命令 - (应用)
clean:清理
-
Eclipse 清理 bin 目录下编译过的class文件,并重新编译一次。
-
tomcat 清理 tomcat 目录下的
-
maven 删除 target 目录
mvn clean
compile:编译
以前,eclipse 为我们自动编译。
- maven
mvn compile
编译文件,生成 target 目录。
test:单元测试
maven test
将项目根目录下 src/test/java 目录下的单元测试类都会执行
<mark>单元测试类名有要求:XxxxTest.java</mark>
package:打包
- web project — war 包
- java project — jar 包
将项目打包,打包项目根目录下 target 目录
install:安装
解决本地多个项目共用一个 jar 包
打包到本地仓库。
maven项目的生命周期
在 maven 中存在 “三套” 生命周期,每一套生命周期都是相互独立的。互不影响。
- CleanLifeCycle:清理生命周期
- Clean
- <mark>DefaultLifeCycle:默认生命周期</mark>
- compile,test,package,install,deploy
- SiteLifeCycle:站点生命周期
- site
在<mark>一套生命周期内</mark>,执行后面的命令,前面操作会自动执行。
相反,<mark>不在一套生命周期内</mark>,不会执行其他生命周期的命令。即互不影响。
6 maven整合web项目案例
配置 eclipse 中 maven 环境
- 配置 m2e 插件,Mars2 版本自带 maven 插件
- 但是,<mark>需要配置 maven 程序</mark>
- 配置 userSetting:让 eclipse 知道 maven 的仓库在哪里
- 构建索引:提高检索速度
rebuild index
Mave 整合 Servlat
- 创建项目
Maven Project:创建一个普通的 Maven 项目 或者 父工程(两个项目中的继承关系)
Maven Module:创建子模块
- 勾选
Create a simple project:跳过原型选择,创建 Maven 项目目录结构相对完整
Add project to working set:(可以不选)创建Working set来帮助我们管理过多的工程项目
重点:坐标信息
- finish
一些问题
-
报错
+《web.xml is missing and is set to true[解决]》https://www.cnblogs.com/wangleideyu/p/9358692.html
web.xml is missing and is set to true
在项目视图下 ==》右键 单击项目名
选择 “Deployment Descriptor”
选择 : Generate Deployment Descriptor Stub
产生 WEB-INF 文件夹和 web.xml 文件
即可解决问题
-
jdk 版本
- 《maven设置编译jdk版本,以及maven打包》https://www.cnblogs.com/yanyuechao/p/8372874.html
- 《maven设置编译jdk版本,以及maven打包》https://www.cnblogs.com/yanyuechao/p/8372874.html
<build>
<plugins>
<plugin>
<!-- 设置编译版本为1.7 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
开始整合
- 创建 servlet
原因:缺失 servlet -api-xx.jar 包
查找依赖
- 《解决eclipse中maven项目无法自动搜索依赖》https://blog.csdn.net/limm33/article/details/52908652
- 《
Artifact Id cannot be empty–pom文件通过Dependencies添加jar包依赖找不到文件解决方法》https://blog.csdn.net/weixin_42129856/article/details/86586644 - MVN Repository https://mvnrepository.com/