11Maven - 依赖管理(整合Struts2案例)

本文实现web工程整合struts2框架为案例

添加依赖

dependency

在pom.xml 中添加dependency标签,如下:
11Maven - 依赖管理(整合Struts2案例)

查找坐标

添加依赖需要指定依赖jar包的坐标,但是很多情况下我们是不知道jar包的坐标,可以通过如下方式查询:

网站搜索示例:

  • 11Maven - 依赖管理(整合Struts2案例)
    11Maven - 依赖管理(整合Struts2案例)
    11Maven - 依赖管理(整合Struts2案例)
  • 方法二:使用maven插件的索引功能
    如果在本地仓库有我们要的jar包,可以在pom.xml中邮件添加依赖
    11Maven - 依赖管理(整合Struts2案例)
    11Maven - 依赖管理(整合Struts2案例)

构建web工程

编写web工程的pom.xml,添加依赖,如下:
11Maven - 依赖管理(整合Struts2案例)

依赖范围

1.基本概念

A依赖B,需要在A的pom.xml文件添加B的坐标,添加坐标是需要指定依赖范围,依赖范围包括:

  • compile: 编译范围,指A在编译时依赖B,此范围默认为依赖范围。编译范围的依赖会用在编译、测试、运行、由于运行时需要所以编译范围的依赖会被打包。
  • provided:provided依赖只有在当JDK或者一个容器已提供改依赖之后才使用,provided依赖在编译和测试时需要,在运行时不需要,比如servlet api被tomcat容器提供。
  • runtime: runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包。
  • test:test范围依赖在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。由于运行时不需要,所以test范围依赖不会打包。
  • system:system范围依赖于provided 类似, 但是你必须显示的提供一个对于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。
  • 11Maven - 依赖管理(整合Struts2案例)
    在maven-web工程中测试各个scop。

测试总结:

  • 默认引入的jar包 —— compile【默认范围 可以不写】(编译、测试、运行都有效)
  • servlet-api、jsp-api —— provided(编译、测试有效,运行时无效防止和tomcat下jar冲突)
  • jadb驱动jar包 —— runtime(测试、运行有效)
  • junit —— test(测试有效)

依赖范围由强到弱的顺序是:compile > provided > runtime > test

2.测试

  1. 向web工程添加jsp/servlet依赖
    11Maven - 依赖管理(整合Struts2案例)
  2. 向工程添加jdbc依赖
    11Maven - 依赖管理(整合Struts2案例)

完整的pom.xml

11Maven - 依赖管理(整合Struts2案例)

action类

11Maven - 依赖管理(整合Struts2案例)

struts.xml

在src/main/resources 创建struts.xml
11Maven - 依赖管理(整合Struts2案例)

web.xml

在web.xml中配置struts2的前端控制器
11Maven - 依赖管理(整合Struts2案例)