Maven工程开发
编写pom.xml配置文件
<properties></properties>
定义项目的基本信息
groupId
反向域名,定义项目组名
artifactId
小写字母,定义项目名
version
定义版本名,三段:第一段革命性的产品升级,第二段新功能版本,第三段修正一些bug
packaging
定义打包方式
<dependencies></dependencies>
添加项目所需要的相关依赖
Maven 存储库:搜索/浏览/探索 (mvnrepository.com)
定义依赖中jar包的坐标
<plugins></plugins>
配置需要用的的第三方插件
定义第三方插件
编写代码
发现在运行项目时,导入的jar包与tomcat7自带的jar包冲突
依赖范围
compile默认范围。表示该依赖在编译和运行时生效,项目打包时也会将该依赖打包进去。
provided使用此依赖范围的Maven依赖,编译和测试时有效,但在运行时无效。典型的例子是servlet-api,在运行时Web容器已经提供依赖,就不需要Maven重复地引入一遍。runtimeruntime范围表明编译时不需要生效,而只在运行时生效。典型的例子是JDBC驱动包,编译时只需要JDK的JDBC接口即可,只有运行项目时才需要具体的JDBC驱动。
testtest范围表明使用此依赖范围的依赖,只在编译和运行测试代码的时生效,程序的正常运行不需要此类依赖。典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候才需要。
system如果有些你依赖的jar包没有Maven坐标的,它完全不在Maven体系中,这时候你可以把它下载到本地硬盘,然后通过system来引用。(不推荐使用)
Maven工程测试
测试概述
黑盒测试:不需要写代码,给输入值,看程序能否给出输出的期望值 白盒测试:需要写代码,关注程序的具体执行步骤 单元测试 | 对软件的最小可测试单元进行检查和测试 java里面是指对一个类的功能测试,属于白盒测试 Junit是java的单元测试框架
Junit使用步骤
- 引入依赖
- 测试方法是可以独立运行的,写法如下:
1.方法名一般为test+被测试方法名
2.方法上方添加@Test
3.测试方法没有参数和返回值
Junit结果判定
注意:可以正常运行不代表正确,可能结果与预期结果不一样,此时需要执行断言操作
Assert.assertEquals(预期结果,实际结果);
@Before修饰前置方法
| 在测试方法执行前自动执行
@After修饰后置方法
| 在测试方法执行后执行