junit依赖_Maven依赖管理以及运行调试

1 依赖管理-添加依赖

1.1 需求

实现web工程整合struts2框架。

1.2 添加依赖

1.2.1 dependency

在pom.xml中添加dependency标签,如下:

参考入门工程的Junit4.9的依赖在web工程的pom.xml中添加dependency

junitjunit4.9

1.2.2 查找坐标

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

方法一:从互联网搜索

http://search.maven.org/

http://mvnrepository.com/

网站搜索示例:

d8b78da1b70ea353848c374360f1e86f.png
a37683a8f7782a34d2268f7c3901c95e.png

方法二:使用maven插件的索引功能

如果在本地仓库有我们要的jar包,可以在pom.xml中邮件添加依赖

6b6160ff659a41b8c95b45839956805d.png
5f1e8d0634a3061f7d969386b8420ec8.png

1.3 构建web工程

1.3.1 添加struts2依赖

编写web工程的pom.xml文件,添加依赖,如下:

org.apache.strutsstruts2-core2.3.24

1.4 依赖范围

1.4.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依赖不推荐使用。

69e2862e369a0331a79b722c82febcc7.png

在maven-web工程中测试各各scop。

测试总结:

默认引入 的jar包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )

servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和tomcat下jar冲突)

jdbc驱动jar包 ---- runtime (测试、运行 有效 )

junit ----- test (测试有效)

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

1.4.2测试

1、向web工程 添加jsp/servlet依赖

javax.servletservlet-api2.5providedjavax.servletjsp-api2.0provided

package打war观察jsp-api和servlet-api是否在war中存在?

2、向dao工程 添加jdbc依赖

mysqlmysql-connector-java5.1.6runtime

package打war观察mysql-connctor-java是否在war中存在?

1.5 完整的pom.xml

根据需求web工程要实现整合struts2,完整的pom.xml如下:

4.0.0cn.itcast.mavenmaven-web-01200.0.1-SNAPSHOTwarweb工程,包括jsp、action等web工程,包括jsp、action等junitjunit4.9mysqlmysql-connector-java5.1.6runtimejavax.servletservlet-api2.5providedjavax.servletjsp-api2.0providedorg.apache.strutsstruts2-core2.3.24org.apache.maven.pluginsmaven-compiler-plugin1.71.7UTF-8

1.6 action类

编写action,实现查询客户信息:

public class CustomerAction extends ActionSupport {private Long custId;/*** @return the custId*/public Long getCustId() {return custId;}/*** @param custId* the custId to set*/public void setCustId(Long custId) {this.custId = custId;}// 查询客户信息public String querycustomer() {System.out.println("客户请求客户Id:"+custId);return "success";}}

1.7 struts.xml

在src/main/resources创建struts.xml

<?xml version="1.0" encoding="UTF-8"?>/jsp/querycustomer.jsp

1.8 web.xml

在web.xml中配置struts2的前端控制器

<?xml version="1.0" encoding="UTF-8"?>struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*index.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jsp

2 maven工程运行调试

2.1 tomcat插件

maven内置tomcat的插件(org.codehaus.mojo. tomcat-maven-plugin),执行tomcat:run命令即可启动tomcat

4e6b42628268d4cdb3ec2d861dbbec72.png

访问:http://localhost:8080/工程名/...

可以通过配置plugin修改tomcat的访问路径及端口:

org.codehaus.mojotomcat-maven-plugin1.1/ssh8080

2.2 端口占用处理

重新执行tomcat:run命令重启工程,重启之前需手动停止 tomcat,否则报下边的错误:

Caused by: java.net.BindException: Address already in use: JVM_Bind

2.3 断点调试

maven工程断点调试必须采用"Debug As"方式启动,并且需要引入源码才可源码跟踪:

f00c5fc25d1a7130bfccd72780151e1f.png
2784b4f368e4c0b18b256611258f0e10.png

引入源码:

ce7dae766089525dfa613dba804b89a0.png

添加,选择本工程:

ad33da6de7788e500e651fb6649e0a80.png
8f635ed7b92a87e4ef3a2f5247a5e7a4.png

以debug方式运行:

4b915349f952e2f3dbcf34b28ce2e933.png
34ec1271892c8fa22d4d664c88894503.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值