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

 <!-- 添加项目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配置加载流程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342