2 Maven的核心概念
2.1 Maven工程约定目录结构
约定:大家都约定好的,会遵循的规则。并不是强制。
每一个Maven的项目在磁盘中都是一个文件夹(项目-Hello)
Hello/
—/src #在这找文件
-------/main #放置主程序的java代码和配置文件
------------/java #放置你的程序包和包中的java文件
------------/resources #放置的是你的java程序中要使用得到配置文件
-------/test #放置测试程序用到的文件代码和文件(非强制有)- 在这找测试
------------/java #放置测试程序包和包中的java文件
------------/resources #放置测试java程序中要使用得到配置文件
—/pom.xml #Maven的核心文件,最先找的文件(Maven项目必须有的文件)
【疑问】mvn compile 这个命令是编译src/main目录下的所有Java文件:
-
为什么要下载
- Maven工具执行的操作需要很多插件(java类–jar文件)完成的。
-
下载什么东西了
-
下载的东西存放哪里了?
- 默认仓库(本机仓库):C:\Users(登录操作系统的用户名)Admin.m2\repository
执行mvn compile,结果是在项目的根目录下生成target,这个目录叫结果目录,Maven编译的java程序,最后的class文件都放在target目录中
设置本机存放资源的目录位置(设置本机仓库):
- 修改Maven的配置文件,Maven安装目录/conf/settings.xml
- 修改 指定你的目录(不要使用中文目录)
- E:\Javalearn\05__1Maven_work\maven_repository
复习
3 仓库
重要的概念:
- 仓库是什么:仓库是存放东西的,存放Maven使用的jar和我们项目使用的jar
- Maven使用的插件(各种jar)
- 我们项目使用的jar包(第三方的工具)
- 仓库的分类
- 本地仓库:就是我的个人计算机上的文件夹,来存放各种jar包。
- 远程仓库:资源在互联网上的,需要使用网络才能使用的仓库。
- ①中央仓库:最权威的,世界上所有的开发人员都共享使用的一个集中的仓库。(位于欧洲的某一个服务器上) https://repo.maven.apache.org :中央仓库的地址。
- ②中央仓库镜像:为了减少中央仓库的压力而产生的,相当于中央仓库的备份,在各大洲,重要的城市,都有镜像。(使用时,首先找的就是镜像)
- ③私服:在公司的内部,在局域网中使用的,不是对外使用的
- 仓库的使用,Maven仓库的使用,不需要人为参与,不是你能控制的管理的,Maven自动使用。
- 开发人员需要使用mysql驱动—>Maven首先是查本地仓库—>私服(如果有私服的话,各级下载)—>镜像(各级下载)—>中央仓库(各级下载)
- pom:项目对象模型,是一个pom.xml文件
- 坐标:唯一值,在互联网中唯一标识一个项目,是必须有的
- 在中央仓库中搜索使用:https://mvnrepository.com/
- 使用groupId或artifactId作为搜索条件
- packaging:打包后压缩文件的扩展名,默认是jar,web应用加war;packaging可以不写,默认时jar。
- 依赖:dependencies和dependency。相当于java代码中的import。你的项目中要使用的各种资源说明,比如我的项目要使用mysql驱动:…
mysql mysql-connector-java 5.1.9
- properties:设置属性
- build:Maven在进行项目的构建时,一些配置信息,例如指定编译java代码使用jdk的版本等等。
- parent:继承(暂时不关心)
- modules:聚合(暂时不关心)
4 Maven的生命周期、命令、插件
Maven的生命周期:就是Maven构建项目的过程:清理,编译,测试,打包,安装,部署。
Maven的命令:Maven可以独立使用,通过命令,完成Maven的生命周期的执行(Maven可以使用命令,完成项目项目的清理,编译,测试等等)。
Maven的插件:Maven命令执行时,真正完成功能的是插件,插件就是一些jar包文件(一些类)。
-
单元测试(测试方法的):用的是Junit,Junit是一个专门测试的框架(工具)。
- Junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的。(方法是测试的基本单位(单元))
- Maven是借助单元测试,批量的测试你类中的大量方法是否符合预期的。
-
使用步骤
- 加入依赖,在pom.xml加入单元测试依赖
junit junit 4.11 test
- 在Maven项目中src/test/java目录下,创建测试程序
- 推荐的创建类和方法的提示:
- 测试类的名称时Test + 你要测试的类名
- 测试的方法的名称时:Test + 方法名称
- 例如你要测试HelloMaven,
- 创建测试类 TestHelloMaven
- @Test
- public void testAdd(){
- 测试HelloMaven的add方法是否正确
- }
- 其中testAdd叫做测试方法,它的定义规则是:
- 方法是public的,必须的
- 方法没有返回值,必须的
- 方法的名称是自定义的,推荐是Test + 方法名称
- 在方法的上面加入@Test
-
mvn compile
- 编译main/java/目录下的java 为class文件,同时把class拷贝到 target/classes目录下面.
- 把main/resources目录下的所有文件,都拷贝到target/classes目录下
-
mvn test-compile 编译测试文件的java文件
-
mvn clean 清理(删除原来编译和测试的目录:target)
-
mvn test 测试
- 会把清理、编译主程序、编译测试程序等步骤都执行一遍。所以不需要提前编译了。
-
mvn package 打包(项目中用得最多)
- 把项目中涉及到的类或配置文件等,形成一个压缩文件(就是jar包)
- 只包含src/main/目录下的所有内容,不包含测试文件
-
mvn install
- 把打包好的jar文件,安装到本地仓库中(别的项目就可以使用了)
重点:
——此文档为学习笔记!