一、单元 测试框架
先下载junitjar包 Maven Repository: junit » junit » 4.13.2 (mvnrepository.com)
对你写的方法进行测试,与预期值一致 代码测试成功
二、Maven 中的依赖
Maven中管理3套classpath
1.编译期间的ClassPath(java目录)
2.测试期间的ClassPath(test目录)
3.运行期间的ClassPath(target目录)
2.1依赖的作用的范围
看代码 当我们通过GAV坐标查找到对应的jar包的时候 我们可以通过 scope
标签设置该jar包的作用范围
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>V
<scope>
标签的设置值的常用项:
-
compile
:默认值的范围 编译的依赖范围 对所有的calssPath都起作用 -
test
:测试的依赖范围 只对测试的classpath起作用 -
runtime
:运行期间的依赖范围 对测试和运行classpath起作用 -
provided
:对编译和测试的classpath起作用 对运行期间的classpath不起作用的 -
注意:经典的使用案例 Maven项目在构建WEB项目时 不会跟Tomacat进行关联 所以缺少
servlet-api.jar和jsp-api.jar
,导致无法使用Servlet API
因此需要我们单独进行引入 但是当我们发布该项目到webapps目录下时 Tomcat已经包含了上述的jar包 如果不设置provided
属性 就会将我们自己引入的servlet-api.jar和jsp-api.jar
发布到tomcat容器中 容易造成版本冲突
2.2依赖的分类
2.3依赖冲突
A项目依赖5.1.47版本的mysql
B项目依赖了5.1.48版本的mysql
那么C项目中mysql的版本:路径不同 找最短路径
路径相同,谁优先加载使用谁
三、Maven项目的聚合和继承
3.1聚合
一个大的项目 不再是一个单独的项目构成 而是由多个小的项目构成一个大的项目(ERP=考勤系统+工资系统+员工系统+绩效考核系统等等)
我们不应该对每个子项目进行单独的处理 应该使用统一简单的处理方式
每个项目的操作都是单独进行处理的 如果存在N个项目 需要操作N遍 耗时耗力
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.parent</groupId>
<artifactId>maven03_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!--维护项目之间的关系-->
<packaging>pom</packaging>
<!--聚合-->
<modules>
<module>../maven03_student</module>
<module>../maven03_teacher</module>
</modules>
</project>
3.2继承
因为拥有多个子项目 每个项目又需要依赖不同jar包 如果每个子项目进行单独维护引用的jar包 可能造成引入的版本不统一 可能导致整个大项目出错
(Student项目msqy5.1.47 Teacher项目mysql5.1.48 )
那么最好统一管理jar包的版本 我们可以通过pom类型的项目管理jar包的版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.parent</groupId>
<artifactId>maven03_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!--继承-->
<!--提取公共信息-->
<properties>
<!--自定义标签-->
<mysql.version>5.1.48</mysql.version>
<!--系统提供的标签-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
student项目中的描述
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.student</groupId>
<artifactId>maven03_student</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>com.parent</groupId>
<artifactId>maven03_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../maven03_parent/pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
四、Maven构建Web项目
继承 Httpservlet
下载
或者从网上直接下载
引入api
设置tomcat
maven到此结束