maven学习 Day2 2018-11-20

一、maven基础

4. maven的常用命令:

dos窗口进入项目pox.xml所在目录,执行命令:mvn tomcat:run

4.1. maven 常用命令
  • 1.clean:清除项目根目录下target文件夹内所有内容
  • 2.compile:编译,将项目中的java文件编译为class文件
  • 3.test:单元测试,将项目根目录下src/java目录下的单元测试类都会执行
    单元测试类名要求:***Test.java
  • 4.package:打包
    web project ==>war包
    java project ==>jar包
    将项目打包,打包项目根目录下target 目录
  • 5.install:安装
    本地多个项目公用一个jar包,打包到本地仓库
4.2. maven项目的生命周期
  • 1.CleanLifeCycle:清理生命周期:clean
  • 2.defaultLifeCycle:默认生命周期:compile、test、package、install、deploy
  • 3.siteLifeCycle:站点生命周期:site

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


maven的生命周期,项目构建过程
4.3 概念模型
maven概念模型

5. maven整合web项目

5.1. 配置maven插件
  • a.新版的eclipse自带maven插件
  • b.配置maven程序


    eclipse配置maven插件
  • c.配置userSetting:


    配置userSetting
  • d.构建索引
    注意配置本地仓库地址


    构建maven索引
5.2. maven整合Servlet
1.选择创建maven项目
2.选择项目原型
3.maven项目信息

创建好的web项目,错误:

  • a.web.xml缺失


    补加缺失web.xml
  • b.jdk编译版本为1.5,在pom.xml中添加插件

 
  
    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                1.8
                1.8
                UTF-8
            
        
    
  
  • c.创建一个Servlet,servlet编译报错,原因:缺失servlet-api-**.jar包


    缺失jar包
  • d.查找依赖


    查找jar包
5.3. 依赖的范围

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

  • 问题:如果将servlet-api.jar设置为compile,打包之后包含servlet-api.jar,war包部署到tomcat后跟tomcat中存在的servlet-api.jar包冲突。导致运行失败。

    与tomcat中jar包冲突

  • 解决:修改依赖范围

修改依赖范围
依赖范围 对于编译classpath有效 对于测试classpath有效 对于运行时classpath有效 例子
compile Y Y Y spring-corer
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驱动
system Y Y - 本地的,Maven仓库之外的类库
  • 总结:如果使用到tomcat自带jar包,将项目中依赖作用范围设置为:provided
provided范围的jar包
5.4 运行、调试项目
maven手动命令
添加调试
5.5maven整合struts2
    1. 通过工具生成web.xml及添加编译jdk版本
通过工具生成web.xml
自己添加插件
搜索插件

    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.7.0
            
            
                1.8
                1.8
                UTF-8
            
        
    
  
    1. 添加struts2的依赖
      添加核心包,自动添加其他依赖包
    1. 创建struts.xml
    1. 创建action类继承ActionSupport类
    1. 在web.xml中配置Struts2框架核心过滤器
  

  
    struts
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
    struts
    /* 
  
    1. 编写action中的方法
    //url http://localhost:8080/maven-struts2/customerAction_test.action
      public String test() throws Exception {
          System.out.println("成功进入CustomerAction中的test方法");
          return SUCCESS;
      }
    
  • 7.在struts.xml中配置action

    
          
              /index.jsp
          
      
    

二、Maven实战

1.传递依赖冲突解决

1.1Maven自己调解原则
1.1.1 第一声明优先原则

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

第一声明优先原则.图一

第一声明优先原则.图二
1.1.2 路径近者优先原则

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

路径近者优先.图一
路径近者优先.图二
1.2 排除依赖
排除依赖操作

排除依赖
1.3 版本锁定(推荐使用)
版本锁定
1.4 在配置文件中定义属性,使用ognl表达式引用属性值
定义属性
引用属性值

2. ssh配置文件加载过程

ssh配置加载流程

你可能感兴趣的:(maven学习 Day2 2018-11-20)