1 Maven基础
开发环境
jdk: 1.8
tomcat: 8.5
maven: 3.5.2
eclipse: oxygen.2)
apache公司的开源项目, 是项目构建工具. 用来依赖管理.
maven的好处
使用传统项目开发CRM项目, 项目大小40多M
同样的项目使用maven开发, 项目大小100多KB
同样的代码实现的功能都一样, maven如何做到的?
Maven项目没有jar包, jar包都在maven仓库中, maven对jar包统一管理.
2 maven的好处如何实现
maven的两大核心:
- 依赖管理
- 对jar包管理
- 项目构建
- 项目在编码完成后, 对项目进行编译, 测试, 打包,部署等 一系列的命令都通过命令来实现
通过maven命令将web项目发布到tomcat
cmd到项目路径中: mvn tomcat:run
3 maven安装, 配置本地仓库
maven程序安装前提, maven是java开发, 它的运行依赖jdk.
3.1 maven的下载安装
下载解压 a, 解压路径不要有特殊字符
jdk环境变量需要设置: JAVA_HOME
3.2 配置环境变量
- 系统, 环境变量, 新建,
- 配置Path
查看maven版本
cmd中mvn -v
3.3 配置本地仓库
maven仓库类型:
- 本地仓库
- 私服: 存在于局域网内的一台服务器, 存jar包
- 中央仓库: 在互联网上,存放了基本上所有的开源的jar包, 由maven团队维护
配置本地仓库:
- 找到jar包仓库压缩包
- 将bo解压
- 在D:\java\a\conf 中修改
4 maven项目标准目录结构
maven-helloworld
- src (项目源码)
- main
- java (java类)
- resources (配置文件, spring,Struts2配置文件的存放目录)
- webapp (页面素材)
- jsp
- WEB-INF
- index.jsp
- test
- java
- resources
- (project object modul, maven项目的核心配置文件)
target (并不属于maven项目的目录, 是源码编译后的class文件)
5 maven的常用命令
5.1 clean : 清理
将项目根目录下target目录清理掉
cmd到项目路径, mvn clean
5.2 compile : 编译
将项目中的.java文件编译为.class文件
mvn compile
5.3 test : 单元测试
项目根目录下src/test/java 目录下的单元测试都会执行.
单元测试类名要求: XxxTe
mvn test
5.4 package : 打包
web project --> war包
java project --> jar包
将项目打包到target目录
5.5 install : 安装
本地多项目共用一个jar包.
打包到本地仓库
5.6 maven项目的生命周期 (了解)
在maven中存在3套生命周期, 每一套生命周期相互独立, 互不影响
- CleanLifeCycle : 清理生命周期
- clean
- DefaultLifeCycle : 默认生命周期
- compile, test, package, install, deploy
- SiteLifeCycle : 站点生命周期
- site
6 maven整合web项目案例
6.1 配置eclipse中maven环境
- 配置m2e插件, Mars2版本已经自带maven插件
- 需要配置maven程序
- Preferences --> Maven --> Installations --> Add.. --> 找到maven的解压路径
- 配置User Settings
- User Settings 设置为D:\java\a\conf\
- 构建索引
- Window --> show view --> maven repository --> Local Repository(D:\java\maven_repository) --> Rebuild Index
6.2 Maven整合Servlet
Maven Project --> 创建普通项目或父工程时
Maven Module --> 创建子模块
6.2.1 创建maven project, 勾选create simple...
创建好的web项目, 有两个错误
- 缺失web.xml,
- jdk编译版本是1.5 , 在中添加插件
或者修改全局jdk版本
文件中的profiles标签下添加
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.com;1.8</maven.com; <maven.com;1.8</maven.com; <maven.com;1.8</maven.com; </properties> </profile>6.2.2 创建Servlet
创建好的Servlet编译报错, 原因是缺少
查找依赖
--> Dependencies --> Add
注: 如何安装jar包到本地仓库中?
mvn install:install-file -Dfile=d:\tmp\javax. -DgroupId=javax -DartifactId=javax-servlet-api -Dversion=3.0.1 -Dpackaging=jar或使用工具类 In
6.2.3 依赖范围 (了解)
依赖范围对于编译classpath有效对于测试classpath有效对于运行时classpath有效例子compileYYYspring-coretest-Y-JunitprovidedYY-servlet-api, jsp-apiruntime-YYJDBC驱动systemYY-本地的, Maven仓库之外的类库
添加依赖范围: 默认是compile
provided : 运行部署到tomcat不再需要
如果将设置为compile, 打包后包含, war包部署到tomcat中存在包冲突, 导致运行失败
解决; --> Dependencies --> Properties --> provided
类似的有 j, 也需要设置为provided
6.2.4 运行maven项目
项目 --> 右键 --> run as --> Maven build...
如果是Debug运行, 选择debug as , 并且需要在Source中添加源码
7 maven概念模型
两个核心:
- 依赖管理系统 : 对jar包管理
- 项目对象模型 (Project Object Model) : 项目构建 : 通过命令进行项目构建
见图片