Maven学习笔记 -- day02 Maven整合struts2及Maven核心概念、添加插件
来源:互联网 发布:消费返利系统源码 编辑:程序博客网 时间:2024/05/01 10:00
一、整合Struts2
1、创建maven项目,引入依赖
2、重建索引仓库
3、引入必要的jar包坐标
4、配置struts.xml和web.xml
(1)、项目架构
(2)、struts.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 通用package --><package name="customer" namespace="/" extends="struts-default"><action name="findById" class="cn.itcast.action.CustomerAction"method="findCustomerById"><result name="success">/jsp/info.jsp</result></action></package></struts>
(3)、web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping> <welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>
二、Maven的坐标
1、什么是坐标
在平面几何中坐标(x,y)可以标识平面中唯一的一点。在maven中坐标就是为了定位一个唯一确定的jar包。
2、Maven坐标的主要组成
groupId:定义当前Maven组织名称
artifactId:定义实际项目名称
version:定义当前项目的当前版本
packaging:定义该项目的打包方式,如果没有此项则默认为jar包。
3、Maven为什么使用坐标
Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器
三、依赖管理
1、图例
2、详解
compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
test:测试依赖范围。只对于测试classpath有效
provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
runtime:运行时提供。例如:jdbc驱动
四、依赖传递
1、直接依赖和间接依赖
如果Two中使用One,Three中使用Two则称Two是Three的直接依赖,而称One是Three的间接依赖。
C->B B->A
C直接依赖B
C间接依赖A
2、依赖范围对依赖传递的影响
左边第一列表示第一直接依赖范围,最上面第一行表示第二直接依赖范围,中间的交叉单元格表示传递性依赖范围
当第二依赖的范围是compile的时候,传递性依赖的范围与第一直接依赖的范围一致。
当第二直接依赖的范围是test的时候,依赖不会得以传递。
当第二依赖的范围是provided的时候,只传递第一直接依赖范围也为provided的依赖,且传递性依赖的范围同样为 provided;
当第二直接依赖的范围是runtime的时候,传递性依赖的范围与第一直接依赖的范围一致,但compile例外,此时传递的依赖范围为runtime;
五、依赖中其他问题
1、依赖冲突
如果直接与间接依赖中包含有同一个坐标不同版本的资源依赖,以直接依赖的版本为准(就近原则)
如果直接依赖中包含有同一个坐标不同版本的资源依赖,以配置顺序下方的版本为准(就近原则)
例如:
在maven-frist工程中依赖log4j-1.2.8版本
在maven-second工程中依赖log4j-1.2.14和log4j-1.2.18版本
此时log4j-1.2.14版本生效。
2、可选依赖
<optional> true/false 是否向下传递。在依赖中添加optional选项决定此依赖是否向下传递,如果是true则不传递,如果是false就传递,默认为false。
3、排除依赖
排除依赖包中所包含的依赖关系,不需要添加版本,直接类别排除
如果在本次依赖中有一些多余的jar包也被传递依赖过来,如果想把这些jar包排除的话可以配置exclusions进行排除。
六、Maven项目添加插件
1、添加tomcat插件
2、运行tomcat
- Maven学习笔记 -- day02 Maven整合struts2及Maven核心概念、添加插件
- Maven核心概念学习
- Maven学习笔记(二)-Maven中核心概念介绍
- Maven学习记录(二)--Maven核心概念
- Maven学习记录(二)--Maven核心概念
- maven学习笔记(2)--核心概念:依赖、仓库、生命周期和插件
- maven核心概念--插件和目标
- (十一)maven核心概念-插件目标
- Maven学习笔记---maven整合web项目
- Maven学习笔记 -- day03 Maven整合SSH
- Maven核心概念
- Maven核心概念
- Maven核心概念
- Maven中的核心概念
- Maven中的核心概念
- Maven中的核心概念
- maven核心概念--生命周期
- maven核心概念
- Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- Python 用HTMLParser解析HTML文件
- 从windows上往Linux传文件
- 645. Set Mismatch
- 16:计算线段长度
- Maven学习笔记 -- day02 Maven整合struts2及Maven核心概念、添加插件
- sqlsever 无法获得model的排它锁
- 轻装上阵Html5游戏开发,JEESJS(三)
- 细说cookie,localstorage与sessionstorage的区别
- 运行spark demo时出现java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)
- Ajax异步获取数据到KindEditor的时候无法显示数据
- Webpack 入门教程
- RecyclerView
- nuc972项目随记