测试开发人员提交代码(如果测试有问题)–> 需要开发人员修改–> 在提交代码给测试–> 测试人员再测试代码(如果还有问题)–> 开发人员修改后再提交–> 再测试直到测试代码通过。
依赖:a.jar需要b.jar这个关系叫做依赖。
构建是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等。
maven支持的构建包括有:
①POM : 一个文件 名称是pom.xml , pom翻译过来叫做项目对象模型。 maven把一个项目当做一个模型使用。控制maven构建项目的过程,管理jar依赖。
②约定的目录结构 : maven项目的目录和文件的位置都是规定的。
③坐标 : 是一个唯一的字符串,用来表示资源的。
④依赖管理 : 管理你的项目可以使用jar文件
⑤仓库管理(了解):你的资源存放的位置
⑥生命周期 (了解): maven工具构建项目的过程,就是生命周期。
⑦插件和目标(了解):执行maven构建的时候用的工具是插件
⑧继承
⑨聚合
使用maven的命令,完成maven使用 (难), 在idea中直接使用maven,代替命令(易)。
**第一步:**需要从maven的官网下载maven的安装包 apache-maven-3.3.9-bin.zip
**第二步:**解压安装包,解压到一个目录,非中文目录。
子目录 bin :执行程序,主要是mvn.cmd
conf :maven工具本身的配置文件 settings.xml
**第三步:**配置环境变量
在系统的环境变量中,指定一个M2_HOME的名称, 指定它的值是maven工具安装目录,bin之前的目录
M2_HOME=D:\work\maven_work\apache-maven-3.3.9
再把M2_HOME加入到path之中,在所有路径之前加入 %M2_HOME%\bin;
**第四步:**验证,新的命令行中,执行mvn -v
注意:需要配置JAVA_HOME ,指定jdk路径
C:\Users\Administrator>mvn -v
出现如下内容,maven安装,配置正确。
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:4
Maven home: D:\work\maven_work\apache-maven-3.3.9
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: C:\java\JDK8-64\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
约定是大家都遵循的一个规则,每一个maven项目在磁盘中都是一个文件夹(项目-Hello)
Hello/
---/src
------/main #放你主程序java代码和配置文件
----------/java #你的程序包和包中的java文件
----------/resources #你的java程序中要使用的配置文件
------/test #放测试程序代码和文件的(可以没有)
----------/java #测试程序包和包中的java文件
----------/resources #测试java程序中要使用的配置文件
---/pom.xml #maven的核心文件(maven项目必须有)
执行mvn compile启动maven
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter-2.0.9.pom
? 下载插件,maven工具执行的操作需要很多插件(java类–jar文件)完成的
? jar文件–叫做插件–插件是完成某些功能
? 默认仓库(本机仓库):
C:\Users\(登录操作系统的用户名)Administrator.m2\repository
https://repo.maven.apache.org
修改maven的配置文件, maven安装目录/conf/settings.xml,先备份 settings.xml
修改 指定你的目录(不要使用中文目录)D:\work\maven_work\maven_repository
仓库是存放东西的, 存放maven使用的插件(各种jar) 和 我们项目使用的jar(第三方的工具)
maven仓库的使用不需要人为参与。
开发人员需要使用mysql驱动—>maven首先查本地仓库—>私服—>镜像—>中央仓库
pom项目对象模型(pom.xml文件)
唯一值, 在互联网中唯一标识一个项目的
公司域名的倒写
自定义项目名称
自定版本号
https://mvnrepository.com/ 搜索使用的中央仓库, 使用groupId 或者 artifactId作为搜索条件
dependencies和dependency ,相当于是 java代码中import
项目中要使用的各种资源说明, 比如:项目要使用mysql驱动
mysql
mysql-connector-java
5.1.9
maven在进行项目的构建时, 配置信息,例如指定编译java代码使用的jdk的版本等
就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署
maven独立使用通过命令,完成maven的生命周期(项目的清理,编译,测试)的执行
插件:maven命令执行时,真正完成功能的是插件,插件就是一些jar文件, 一些类。
第一步:加入依赖,在pom.xml加入单元测试依赖
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
第二步:在maven项目中的src/test/java目录下,创建测试程序。
推荐的创建类和方法的提示:
例如你要测试HelloMaven
创建测试类 TestHelloMaven
@Test
public void testAdd(){
测试HelloMaven的add方法是否正确
}
其中testAdd叫做测试方法,它的定义规则
第三步:mvn compile
编译main/java/目录下的java 为class文件, 同时把class拷贝到 target/classes目录下面。
把main/resources目录下的所有文件 都拷贝到target/classes目录下
在idea中设置maven ,让idea和maven结合使用。
idea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息
配置的入口
①:配置当前工程的设置
file–settings —Build, Excution,Deployment–Build Tools
? --Maven
? Maven Home directory: maven的安装目录
? User Settings File : 就是maven安装目录conf/setting.xml配置文件
? Local Repository : 本机仓库的目录位置
? --Build Tools–Maven–Runner
? VM Options : archetypeCatalog=internal
? JRE: 你项目的jdk
VM Options : archetypeCatalog=internal , maven项目创建时,会联网下载模版文件,比较大
VM Options : -DarchetypeCatalog=internal,不用下载, 创建maven项目速度快。
②:配置以后新建工程的设置, file–other settings–Settings for New Project
1)maven-archetype-quickstart : 普通的java项目
2)maven-archetype-webapp : web工程
依赖范围, 使用scope表示的。
scope的值有 compile, test, provided ,默认是compile
scope:表示依赖使用的范围,也就是在maven构建项目的那些阶段中起作用。
maven构建项目 编译, 测试 ,打包, 安装 ,部署 过程(阶段)
junit的依赖范围是 test
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
<dependency>
<groupId>agroupId>
<artifactId>bartifactId> b.jar
<version>4.11version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.1.0version> servlet.jar
<scope>providedscope> 提供者
dependency>
你在写项目的中的用到的所有依赖(jar ) ,必须在本地仓库中有。没有必须通过maven下载, 包括provided的都必须下载。
你在servlet需要继承HttpServlet(provided) , 你使用的HttpServlet是maven仓库中的。
当你的写好的程序, 放到 tomat服务器中运行时, 此时你的程序中不包含servlet的jar,因为tomcat提供了 servlet的.jar
? 设置maven的常用属性
自定义的属性
1.在 通过自定义标签声明变量(标签名就是变量名)
2.在pom.xml文件中的其它位置,使用 ${标签名} 使用变量的值
自定义全局变量一般是定义依赖的版本号,当你的项目中要使用多个相同的版本号,先使用全局变量定义, 在使用${变量名}
<build>
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<!—filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>falsefiltering>
resource>
resources>
build>
作用: mybatis课程中会用到这个作用
默认没有使用resources的时候, maven执行编译代码时,会把src/main/resource目录中的文件拷贝到target/classes目录中。
我们的程序有需要把一些文件放在src/main/java目录中,当我在执行java程序时,需要用到src/main/java目录中的文件。需要告诉maven 在 mvn compile src/main/java目录下的程序时,需要把文件一同拷贝到tarcet/classes目录中。此时就需要在中加入.