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



原创粉丝点击