美文网首页
maven学习 Day2 2018-11-20

maven学习 Day2 2018-11-20

作者: Ernest_Chou | 来源:发表于2018-11-20 18:15 被阅读0次

    一、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中添加插件

     <!-- 添加项目jdk编译插件 -->
      <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
      </build>
    
    • 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 自己添加插件 搜索插件
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <!-- 手动设置详细信息 -->
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
      </build>
    
      1. 添加struts2的依赖
        添加核心包,自动添加其他依赖包
      1. 创建struts.xml
      1. 创建action类继承ActionSupport类
      1. 在web.xml中配置Struts2框架核心过滤器
      <!-- 配置Struts2框架核心过滤器 -->
    
      <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern> <!-- .action或者空白结尾的会经过过滤器 -->
      </filter-mapping>
    
      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

      <package name="demo" namespace="/" extends="struts-default">
            <action name="customerAction_*" class="com.zhougl.web.action.CustomerAction" method="{1}">
                <result name="success">/index.jsp</result>
            </action>
        </package>
      

    二、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

          本文链接:https://www.haomeiwen.com/subject/ecrtqqtx.html