0.1概述
Maven是专门用于构建和管理项目的工具。
0.2项目的开发和管理
1.maven可以管理jar文件
2.自动下载jar文件和它的文档,源代码
3.管理jar版本
4.管理jar之间的依赖
5.帮你编译程序,把java编译为class
6.帮你测试你的代码是否正确
7.帮你打包文件,形成jar文件,或者war文件
8.帮你部署项目
0.3项目的构建
项目的构建是面向过程的。
maven支持的构建包括有:
1.clean清理:把之前项目编译的东西删除。
2.compile编译:把程序源代码编译为执行代码。java-class文件。
3.test测试:meven可以测试程序代码,验证功能是否正确。
4.test-compile报告:生成测试结果的文件,测试通过没有。
5.package打包:把项目中的所有class文件,配置文件等所有资源放到一个压缩文件中。
java程序,压缩文件是jar扩展名的。
web应用,压缩文件是war扩展名的
6.install安装:把jar、war压缩文件保存到本地仓库。
7.deploy部署:部署主程序,会把本工程打包,并保存到本地仓库,并且还会保存到私服仓库,还会自动把项目部署到web容器中。
0.4maven核心概念
POM:项目对象模型,管理jar依赖。
约定的目录结构:mven项目的目录和文件的位置都是规定好的。
坐标:表示资源。
groupid:组织名,通常是公司组织域名倒序+项目名
artifactid:模块名,通常是工程名
version:版本号
artifactid和version决定jar包的名称
依赖管理:项目可以使用的jar文件,maven会根据坐标自动到本地仓库进行查找。
对于自己的maven项目需要进行安装,才能保存到仓库中。
仓库:资源存放的位置。
本地仓库:个人计算机上的文件夹。
远程仓库:互联网上的,有网络才能使用的仓库。
中央仓库:最权威的,所有开发人员都共享使用的一个集中的仓库。
中央仓库的镜像:中央仓库的备份,在各大洲,重要城市都有镜像。
私服:在公司内部,在局域网中使用的,不对外使用。
生命周期:maven工具构建项目的过程就是生命周期。
插件和目标:执行mven构建的时候用的工具就是插件。
继承
聚合
0.5安装
1.需要从maven官网下载安装包,用的最广泛的是3.3.9的
2.解压到一个英文目录
bin目录:可执行程序,主要是mvn.cmd
conf目录:maven工具本身的配置文件settings.xml
3.配置环境变量,指定一个M2_HOML的名称,值为maven的安装目录,bin之前的目录
4.测试cmd:mvn -v
修改本机存放资源的目录位置,修改settings.xml
<local_repository>指定你的目录(不要使用中文目录),把路径的\改为/
0.6单元测试
1.概述
用的是junit,是一个专门测试的框架。
测试的内容:类中的方法,每个方法都是独立的,方法是测试的基本单位(单元)
maven借助单元测试,批量的测试你类中的大量方法是否符合预期
2.使用步骤:
(1)在pom.xml加入单元测试依赖
(2)在maven项目中的src/test/java目录下,创建测试程序
测试类的名称:Test+你要测试的类名
测试方法的名称:Test+方法名称
方法必须是public,没有返回值
(3)在方法上面加上@Test注解
0.7常用插件
1.maven的编译插件。设置项目使用的jdk版本通过编译插件指定
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!--告诉maven,我们写的代码是在jdk1.8上编译的-->
<source>1.8</source>
<!--我们的程序应该运行在jdk1.8上-->
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
或者在<dependencies>上面加
<properties>
<!--mavne构建项目使用的是utf-8,避免中文乱码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--编译java代码使用的是jdk版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<!--你的java项目应该运行在什么样的jdk版本-->
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
0.8idea集成maven
1.配置仓库地址
2.配置环境
-DarchetypeCatalog=internal:maven项目创建时,会联网下载模板文件比较大,加上这个就不用下载,创建maven项目速度比较快。
3.创建项目
(1)普通的java项目
(2)web项目
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--jsp依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
0.9依赖范围
使用<scope>表示,依赖的范围:compile、test、provided,默认采用compile。
1.0Maven常用设置
1.全局变量
<properties>用于定义全局变量,通过${property_name}的形式应用变量的值。
//定义全局变量
<properties>
<spring.version>4.3.10RELEASE</spring.version>
</properties>
//引用全局变量
<version>${spring.version}</version>
2.指定资源位置
<build>
<resources>
<resource>
<!--所在的目录-->
<directory>src/main/java</directory>
<includes> <!--包括目录下的.properties、xml文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--filtering选项false不启用过滤器,*.property已经起到过滤的作用了-->
<filtering>false</filtering>
</resource>
</resources>
</build>