3

Maven基础

Maven的Apache公司开源项目,是项目的构建工具,用来依赖管理

1.maven的好处

  • 使用传统项目开发cim项目,项目大小几十兆
  • 使用maven开发几百kb

同样的代码,实现的功能都一样,那么maven项目是如何做到的?

可以初步推断,maven项目中一定没有jar包

没有jar包,maven项目如何运行?

2.maven的好处如何实现

maven的两大核心

  1. 依赖管理:对jar包管理过程
  2. 项目构建:项目在编码完成后,对项目进行编译,测试,打包,部署一系列的操作都通过命令来实现

通过maven命令将web项目发布到tomcat

mvn tomcat:run

3.maven安装 配置本地仓库

maven程序安装前提:maven程序纯java开发,它的运行依赖jdk

4.maven项目标准目录结构

5.maven常用命令(应用)

  1. clean:清理
mvn clean

将项目根目录下的target目录清理掉

  1. compile:编译
mvn compile

将项目中的java文件编译成class文件

  1. test:单元测试
mvn test

单元测试的类名有要求:xxxTest.java
将项目根目录下src/test/java目录下的单元测试类都会执行

  1. package:打包
mvn package

web project ---> war包
java project ---> jar包
将项目打包,打包项目根目录下target目录

  1. install:安装
mvn install

解决本地多个项目公用一个jar包的问题,打包到本地仓库

  1. maven项目的生命周期(了解)

在maven种存在"三套"生命周期,每一套生命周期相互独立,互不影响,在一套生命周期内,执行后面的命令前面操作会自动执行

- ClwanLifeCycle:清理生命周期
Clean
- defaultLifeCycle:默认生命周期
compile,test,package,install,deploy
- siteLIfeCycle:站点生命周期
site
  1. 概念模型

两个核心:依赖管理,项目构建

6.maven整合web项目案例

1.配置eclipse种maven环境

(1) 配置m2e插件,Mars2版本自带maven插件
(2)需要配置maven程序
1.windows -> preferences -> maven -> installations -> add 添加本地maven
2.windows -> preferences -> maven -> User-setting 添加本地setting.xml及本地仓库
3.windows -> show Windows -> maven Reo... ->local Reo... ->rebuild index 重建索引

2.maven整合servlet

创建好的maven项目有两个错误
(1)缺少web.xml
(2)jdk编译版本1.5,在pom.xml中添加依赖

创建servlet

3.依赖范围

依赖范围 对于编译classpath有效 对于测试classpath有效 对于运行时classpath有效 例子
compile Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驱动
system Y Y - 本地的maven仓库之外的仓库

添加依赖范围,默认是compile
provided:部署到tomcat后不再需要

问题:
如果将servlet-api这个jar包设置为compile,最终打包后就包含一个servlet-api.jar包,当war包部署到tomcat中,已存在servlet-api.jar包冲突,导致运行失败

解决:

<scope>provided</scope>

总结:如果使用到tomcat自带jar包,需要将项目中依赖作用范围设置为:provided

4.运行项目
run as ---> maven build... --->输入 tomcat:run

5.调试项目
debug as ---> maven build... --->输入 tomcat:run(记得添加源码)

7.总结

  1. 安装
  2. maven标准目录结构
  3. maven常用命令
  4. 使用eclipse开发maven项目
  5. pom.xml项目对象模型
    (1)本项目的坐标信息
    (2)本项目jdk编译版本的信息
    (3)本项目依赖jar包信息

_

1.传递依赖冲突解决(了解)

依赖传递:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C就是A的依赖传递

   导入依赖D,D依赖C(1.2版本)

1.1maven自己调解原则

1.第一声明者优先原则

谁先定义就用谁的传递依赖

2.路径近者优先原则

直接依赖级别高于传递依赖

2.排除依赖

3.版本锁定(推荐使用)

2.通过maven整合ssh框架(重点)

2.1搭建struts2环境

  1. 创建struts2配置文件:struts.xml
  2. 在web.xml中配置struts的核心过滤器

2.2搭建spring环境

  1. 创建spring配置文件:applicationContext.xml
  2. 在web.xml种配置监听器:ContextLoaderListener

2.3搭建Hibernate环境

  1. 创建hibernate核心配置文件

2.4struts2跟spring整合

整合关键点:action对象的创建,交给spring创建

  1. 创建Action类
  2. 将Action对象配置到spring配置文件中
  3. 在struts.xml中在action节点中class属性配置为spring工程中action对象bean的id

2.5spring与hibernate整合

整合关键点:1.数据源dataSource交给spring 2.SessionFactory对象创建交给spring对象 3.事务管理

3.通过maven对项目进行拆分聚合(重点)


minus75
9 声望0 粉丝

思旭如满月,夜夜减清辉